why __repr__ affected after __getattr__ overloaded?

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Fri Jun 22 00:55:37 EDT 2007


En Fri, 22 Jun 2007 00:30:43 -0300, Roc Zhou <chowroc.z at gmail.com>  
escribió:

> Now I have to design a class that overload __getattr__, but after
> that, I found the __repr__ have been affected. This is a simple
> example model:

You are creating many attributes with value "inexistent", even special  
methods. Put a print statement and see what happens:

> #!/usr/bin/env python
>
> class test:
>     def __init__(self):
>         self.x = 1
>     def __getattr__(self, attr_name):
>         try:
>             return self.__dict__[attr_name]
>         except KeyError:
               print "Now creating:",attr_name
>             self.__dict__[attr_name] = 'inexistent'
>             return self.__dict__[attr_name]

-- 
Gabriel Genellina




More information about the Python-list mailing list