Почему setattr не работает на связанном методе

В следующем примере 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

17
задан Lightness Races with Monica 2 November 2011 в 16:24
поделиться