dictionary and __getattr__
Alex Martelli
aleax at aleax.it
Thu Sep 6 10:46:10 EDT 2001
More information about the Python-list mailing list
Thu Sep 6 10:46:10 EDT 2001
- Previous message (by thread): dictionary and __getattr__
- Next message (by thread): dictionary and __getattr__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Heiko Wundram" <heikowu at ceosg.de> wrote in message news:mailman.999774247.7475.python-list at python.org... ... > # Works with Python 2.2a2. Doesn't work, because of the usual __setattr__ problem: > from __future__ import generators > > class AttributeDictionary: > > def __init__(self): > self.dict = {} This calls self.__setattr__('dict',{}) [snip] > def __setattr__(self, key, value): > self.dict[key] = value ...which in turn calls self.__getattr__('dict') first, etc, etc. When a class has __setattr__, remember it's going to be called for EVERY attribute-setting. So, in this case, __init__ must start with self.__dict__['dict'] = {} Things are slightly different in 2.2: __getattr__ also becomes called-everytime, you can define the slots explicitly, etc, but not for classic classes (only for those that extend list, dictionary, or object, I believe). Alex
- Previous message (by thread): dictionary and __getattr__
- Next message (by thread): dictionary and __getattr__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list