unexpected behaviour playing with dynamic methods
Marc Aymerich
glicerinu at gmail.com
Thu Feb 23 06:52:27 EST 2012
Hi,
I'm playing a bit with python dynamic methods and I came up with a
scenario that I don't understant. Considering the follow code:
# Declare a dummy class
class A(object):
pass
# generate a dynamic method and insert it to A class
for name in ['a', 'b', 'c']:
if name == 'b':
@property
def get_name(self):
return name
A.name = get_name
a_instance = A()
a_instance.name
# So far I exptect that a_instance.name returns 'b', since it has
been created when name == 'b', but this is what actually returns:
>>> a_instance.name
'c'
just the last 'name' value.
What can I do in order to generate a method like this but that returns
'b' ? What is wrong in my understanding of this pice of code?
Thanks !!!
marc
More information about the Python-list
mailing list