小编sbe*_*ell的帖子

在Python中向实例方法添加属性

我想在我的一个类中为实例方法添加一个属性.我尝试了这个问题给出的答案,但这个答案只适用于函数 - 据我所知.

举个例子,我希望能够做到这样的事情:

class foo(object):
    ...
    def bar(self):
        self.bar.counter += 1
        return self.bar.counter
    bar.counter = 1
    ...
Run Code Online (Sandbox Code Playgroud)

但是,当我调用foo().bar()时,我得到:

AttributeError: 'instancemethod' object has no attribute 'counter'
Run Code Online (Sandbox Code Playgroud)

我这样做的目的是试图强调'counter'变量是bar()方法的本地变量,并且还避免使用另一个属性混乱我的类名称空间.有没有办法做到这一点?有更多的pythonic方式吗?

python methods instance instance-methods

10
推荐指数
1
解决办法
5946
查看次数

标签 统计

instance ×1

instance-methods ×1

methods ×1

python ×1