Hi, I want to add some properties dynamically to a class, and then add the corresponding getter methods. Something resulting in this:
class Person: def Getname(self): return self.__name def Getage(self): return self.__age I've implemented the next code, creating the properties from a list: props = [ ("name", "peter"), ("age", 31), ("wife", "mary") ] class Person: def __init__(self): for prop in props: setattr(self, "__" + prop[0], prop[1]) setattr(Person, "Get" + prop[0], lambda self: getattr (self, "__" + prop[0])) if __name__ == "__main__": person = Person() print person.__name print person.__age print person.__wife print print person.Getname() print person.Getage() print person.Getwife() And the resulting execution of this program is: peter 31 mary mary mary mary The attributes are right, but the getter are not working. The problem is that the lambda function always execute the last parameter passed for all instances of the methods. How could it be done the right way? Thanks in advance -- http://mail.python.org/mailman/listinfo/python-list