В следующем случае setattr
преуспевает в первом вызове, но не во втором, с:
AttributeError: 'method' object has no attribute 'i'
Почему это так, и есть способ установить атрибут для метода таким образом, чтобы он существовал только в одном экземпляре, а не для каждого экземпляра класса?
class c:
def m(self):
print(type(c.m))
setattr(c.m, 'i', 0)
print(type(self.m))
setattr(self.m, 'i', 0)
Python 3.2.2