【发布时间】:2012-03-20 08:53:15
【问题描述】:
我想在我的一个类中为实例方法添加一个属性。我尝试了this question 中给出的答案,但这个答案仅适用于函数——据我所知。
例如,我希望能够执行以下操作:
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() 方法的本地变量,同时也避免让我的类命名空间与另一个属性混淆。有没有办法做到这一点?有没有更 Pythonic 的方式来做到这一点?
【问题讨论】:
-
应该
counter是类级别(所有实例共享当前计数)还是实例级别(每个实例将从 1 开始)? -
counter应该是实例级别 -
这个相关问题可能(或可能没有)有帮助:stackoverflow.com/questions/7034063/…
标签: python methods instance instance-methods