我在Python中有这个类。 (删除了不必要的部分)
class Spillebrett:
def __init__(self, rader, kolonner):
self._rader = rader
self._kolonner = kolonner
self._generasjonsnummer = 0
每次运行类时我都需要向_generasjonsnummer添加1。如果我尝试_generasjonsnummer + = 1我得到一个错误。我尝试创建一个def addGenerasjonsnummer()并在 init 中调用它,如下所示:
class Spillebrett:
def __init__(self, rader, kolonner):
self._rader = rader
self._kolonner = kolonner
self._generasjonsnummer = 0
addGenerasjonsnummer()
def addGenerasjonsnummer():
self._generasjonsnummer += 1
但是我无法调用 init 中的函数。我需要的是每次启动init时这个数字都更新到+ = 1,我该怎么做?
答案 0 :(得分:3)
如果你的类有一个属性,每次调用构造函数时都会增加,那么你应该将它与任何开始的实例取消关联。换句话说,将其声明为类属性 outside __init__
。
我建议采用以下方法:
In [625]: class Spillebrett:
...: ctr = 0
...: def __init__(self):
...: print(Spillebrett.ctr)
...: Spillebrett.ctr += 1
...:
In [626]: Spillebrett()
0
Out[626]: <__main__.Spillebrett at 0x10b918da0>
In [627]: Spillebrett()
1
Out[627]: <__main__.Spillebrett at 0x109f1af98>
In [628]: Spillebrett()
2
Out[628]: <__main__.Spillebrett at 0x10b918470>