On Wed, May 13, 2009 at 1:00 PM, Christian Heimes <li...@cheimes.de> wrote: > Gunter Henriksen wrote: >> but that seems like an arcane way to do something >> which would ideally be transparent... if there is >> a function in the standard library, that would be >> good, even if I have to import it. I guess there is >> collections.namedtuple... that would not look much >> prettier... but the main thing to me is for it to >> be the same way everybody else does it. I do not >> prefer the new object be a dict, but it would be ok. > > Most objects have an attribute called '__dict__' that acts as a > container for the attributes of an object. > >>>> class Container(object): > ... pass > ... >>>> container = Container() >>>> d = {"hello": "world"} >>>> container.__dict__.update(d) >>>> container.hello > 'world' > > You can also implemenet __getattr__() like: > > def __getattr__(self, name): > try: > return self.data[name] > except KeyError: > raise AttributeError(name)
See also the `namedtuple` type in the `collections` module: http://docs.python.org/library/collections.html#collections.namedtuple Cheers, Chris -- http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list