mirror of https://github.com/scrapy/scrapy.git
code style changes for newitem, and only return fields or special attrs in Item
--HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40964
This commit is contained in:
parent
d26b968f51
commit
e744e87517
|
|
@ -22,22 +22,25 @@ class Item(Declarative, ScrapedItem):
|
|||
return self.__class__.fields
|
||||
|
||||
def __setattr__(self, name, value):
|
||||
if not name.startswith('_'):
|
||||
if name in self._fields.keys():
|
||||
self._values[name] = self._fields[name].assign(value)
|
||||
else:
|
||||
raise AttributeError(name)
|
||||
if name.startswith('_'):
|
||||
return object.__setattr__(self, name, value)
|
||||
|
||||
if name in self._fields.keys():
|
||||
self._values[name] = self._fields[name].assign(value)
|
||||
else:
|
||||
object.__setattr__(self, name, value)
|
||||
raise AttributeError(name)
|
||||
|
||||
def __getattribute__(self, name):
|
||||
if not name.startswith('_') and name in self._fields.keys():
|
||||
if name.startswith('_'):
|
||||
return object.__getattribute__(self, name)
|
||||
|
||||
if name in self._fields.keys():
|
||||
try:
|
||||
return self._values[name]
|
||||
except KeyError:
|
||||
return self._fields[name].default
|
||||
else:
|
||||
return object.__getattribute__(self, name)
|
||||
raise AttributeError(name)
|
||||
|
||||
def __repr__(self):
|
||||
"""
|
||||
|
|
|
|||
Loading…
Reference in New Issue