Getting a dictionary from an object

Mike Moum DoubleMPi at Netscape.com
Wed Aug 3 22:22:53 EDT 2005


Thanos Tsouanas wrote:

I'm not sure what you're getting at, but have you tried this:

class A(object):
     def __getitem__(self, ky):
         return self.__dict__[ky]

for example:
 >>> class A(object):
	def __init__(self,a,b,c):
		self.a = a
		self.b = b
		self.c = c
	def __getitem__(self, ky):
		return self.__dict__[ky]

	
 >>> a = A(1,2,3)
 >>> a['a']
1
 >>> a['b']
2
 >>>

> Hello.
> 
> I would like to have a quick way to create dicts from object, so that a
> call to foo['bar'] would return obj.bar.
> 
> The following works, but I would prefer to use a built-in way if one
> exists.  Is there one?
> 
> Thanks in advance.
> 
> class dictobj(dict):
>     """
>     class dictobj(dict):
>     A dictionary d with an object attached to it,
> 	which treats d['foo'] as d.obj.foo.
>     """
>     def __init__(self, obj):
>         self.obj = obj
>     def __getitem__(self, key):
>         return self.obj.__getattribute__(key)
> 




More information about the Python-list mailing list