2

我想将我第一次启动课程与其他所有时间区分开来。我创建了一个实例属性并将其值设置为 True。我该怎么做才能让所有后续实例将该属性值设为 False?

class Cool(Dude): 

    def __init__(self):
        self.coolnesscheck = True
4

2 回答 2

1

您可以使用类属性来指示第一个对象是否已创建。例子 -

class Cool:
    __firstinit = True

    def __init__(self):
        self.coolnesscheck = Cool.__firstinit
        Cool.__firstinit = False

__在名称中添加了Name Mangling,以便在类外不易访问该属性。

于 2015-10-17T05:15:04.803 回答
0

使用类属性,并False在实例化该类的对象时将其设置为:

>>> class Cool:
...     coolnesscheck = True
...     def __init__(self):
...         self.coolnesscheck = Cool.coolnesscheck
...         Cool.coolnesscheck = False
...
>>> Cool.coolnesscheck
True
>>> a = Cool()
>>> Cool.coolnesscheck
False
>>> a.coolnesscheck
True
>>> b = Cool()
>>> Cool.coolnesscheck
False
>>> b.coolnesscheck
False
于 2015-10-17T05:16:35.240 回答