hallo liste,
ich habe folgenden classe geschrieben
<code>
class Ob(object):
def __init__(self, dic):
for i in dic.keys():
setattr(self, i , dic[i])
def __repr__(self):
return str(self.__dict__)
def __getitem__(self, key):
return self.__dict__.get(key,None)
def __setitem__(self, key, value):
setattr(self, key, value)
def __delitem__(self, key):
del self.__dict__[key]
def __len__(self):
return len(self.__dict__)
def __iter__(self):
return self.__dict__.iterkeys()
def keys(self):
return self.__dict__.keys()
def has_key(self, key):
return self.__dict__.has_key(key)
</code>
aufrufen tue ich das ganze mit
xy = Ob({'aa':'a1', 'bb':'b1'})
ich kann somit xy['aa'] nutzen als auch xy.aa. Es funktioniert auch.
aber:
Wenn ich auf eine undefinierte variable zugreife "xy['undef']" bekomme
ich, wie gewollt, ein None zurück. Jedoch ein "xx.undef" erzeugt den
fehler
Traceback (most recent call last):
File "<string>", line 1, in <string>
AttributeError: 'Ob' object has no attribute 'undef'
Ein "xx.undef" ruft wohl nicht __getitem__ auf. Wie kann ich das
lösen?
--
cu
Roland M. Kruggel
mailto:rk.liste@bbf7.de http:www.bbf7.de
System: Intel, Debian etch, 2.6.21, xfce4, KDE 3.5
------------
Zufallszitat
Wie man sein Kind nicht nennen sollte:
Ron Dell