question on __dict__
Thomas Jensen
thomasNO at SPAM.obscure.dk
Thu Nov 22 07:23:19 EST 2001
Markus Jais <mjais at web.de> wrote in
news:pan.2001.11.22.12.52.34.97867.2869 at web.de:
> hello
> can somebody tell me, what the difference is between
>
> self.__dict__('foo') = 'bar'
You mean self.__dict__['foo'] = 'bar' right ?
> and
> self.foo = 'bar'
>
> or is there no difference?
In most cases there is no difference (except I suspect the former is
somwhat slower).
All Python objects has an attribute __dict__ which contains the
object's attributes. When assigning to 'foo' you are actually refering
to the 'foo' key of the object's __dict__ dictionary.
It is possible to override this behaviour by defining the method
__setattr__ in the class in which case differences might occur.
http://www.python.org/doc/current/ref/attribute-access.html
Generally, I don't think you should access __dict__ unless you have a
specific reason.
If you need to get 'foo' from a string, have a look at setattr().
http://www.python.org/doc/current/lib/built-in-funcs.html
--
Best Regards
Thomas Jensen
More information about the Python-list
mailing list