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" <[EMAIL PROTECTED]> wrote: > En Fri, 22 Jun 2007 00:30:43 -0300, Roc Zhou <[EMAIL PROTECTED]> > 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
-- http://mail.python.org/mailman/listinfo/python-list