【发布时间】:2024-01-08 00:42:01
【问题描述】:
假设我有以下代码:
class Parent(object):
counter = 0
@classmethod
def inc(cls):
cls.counter += 1
class Child(Parent):
pass
Child.inc()
print Parent.counter, Child.counter
在我的测试中,这段代码输出: 0 1
似乎上面的代码会在孩子身上创建一个属性计数器并增加它。我试过使用 super :
class Child(Parent):
@classmethod
def inc(cls):
super(Child,cls).inc()
但结果是一样的。
如何使 inc 方法增加父级,以使父级和子级都保持相同的计数器并打印: 1 1
提前致谢。
【问题讨论】:
-
如果要增加
Parent.counter,请参考Parent.counter,而不是cls.counter。
标签: python-2.7 inheritance class-method class-attributes