why __repr__ affected after __getattr__ overloaded?

Roc Zhou chowroc.z at gmail.com
Fri Jun 22 01:48:50 EDT 2007


I know what's wrong. Thank you. And I think
try:
    return self.__dict__[attr_name]
is unnecessary, because python will do it itself for us.

So now I have to overload __str__, but how can I make self.__str__
print as builtin str(): at here, I want get the result like:
<test instance at 0xb7bbb90c>
?

On 6 22 ,   12 55 , "Gabriel Genellina" <gagsl-... at yahoo.com.ar>
wrote:
> En Fri, 22 Jun 2007 00:30:43 -0300, Roc Zhou <chowro... 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