Добавление атрибутов к методам экземпляра в Python

я хотел бы добавить атрибут к методу экземпляра в одном из моих классов. Я попробовал ответить на этот вопрос , этот вопрос , но этот ответ работает только для функций - насколько я могу судить.

В качестве примера я хотел бы иметь возможность сделать что-то вроде:

class foo(object):
    ...
    def bar(self):
        self.bar.counter += 1
        return self.bar.counter
    bar.counter = 1
    ...

но когда я вызываю foo (). Bar (), я получаю:

AttributeError: 'instancemethod' object has no attribute 'counter'

Моя цель в этом - попытаться произвести впечатление на этого человека. переменная counter является локальной для метода bar (), а также для того, чтобы не загромождать пространство имен моего класса еще одним атрибутом. Есть ли способ сделать это? Есть ли более питонический способ сделать это?

10
задан Community 23 May 2017 в 12:23
поделиться