There is more than one way to do it - and for no apparent reason.
gbreed at cix.compulink.co.uk
gbreed at cix.compulink.co.uk
Mon Feb 18 10:00:56 EST 2002
Max M wrote:
> well I can allways just mix-in my own class
>
> class IWILLHaveItMyWay:
>
> def __getitem__(self, key):
> return getattr(self, key)
>
> def __setitem__(self, key, value):
> setattr(self, key, value)
In 2.2, you can do better
class HaveItYourWay:
def __getitem__(self, key):
return getattr(self, key)
def __setitem__(self, key, value):
setattr(self, key, value)
def __iter__(self):
return self.__dict__.__iter__()
>>> dict = HaveItYourWay()
>>> dirtyList = ['keys', 'values', 'items']
>>> for item in dirtyList:
... dict[item]=42
...
>>> for key in dict:
... print key, dict[key]
...
keys 42
items 42
values 42
>>> dict.keys
42
>>> dict.values
42
>>> dict.items
42
>>> dict.items=31
>>> dict['items']
31
Graham
More information about the Python-list
mailing list