python3 - 2to3 + miscell obvious tweaks
[sfa.git] / sfa / rspecs / elements / element.py
index a2febfc..7dcfa00 100644 (file)
@@ -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()
+            keys = list(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))