X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Felements%2Felement.py;h=21f0949c92881f3fdb1e7f68ed6aab44f7933456;hb=04a3f20dc71bf8b3f96b1e3172623aa346a638a7;hp=a2febfc01d9f43fb073f136731c02d933fe61d40;hpb=bc606b4e5ce0cf686274510d1167ec85340c4e83;p=sfa.git diff --git a/sfa/rspecs/elements/element.py b/sfa/rspecs/elements/element.py index a2febfc0..21f0949c 100644 --- a/sfa/rspecs/elements/element.py +++ b/sfa/rspecs/elements/element.py @@ -2,18 +2,22 @@ class Element(dict): fields = {} - def __init__(self, fields={}, element=None, keys=None): + def __init__(self, fields=None, element=None, keys=None): + if fields is None: + fields = {} self.element = element dict.__init__(self, dict.fromkeys(self.fields)) if not keys: keys = fields.keys() for key in keys: if key in fields: - self[key] = fields[key] + self[key] = fields[key] - def __getattr__(self, attr): - if hasattr(self, attr): - return getattr(self, attr) - elif self.element is not None and hasattr(self.element, attr): - return getattr(self.element, attr) - raise AttributeError, "Element class has no attribute %s" % attr + def __getattr__(self, name): + if hasattr(self.__dict__, name): + return getattr(self.__dict__, name) + elif hasattr(self.element, name): + return getattr(self.element, name) + else: + raise AttributeError("class Element of type {} has no attribute {}" + .format(self.__class__.__name__, name))