如何改变/修改实例属性?

时间:2015-10-17 05:07:31

标签: python python-3.x instance mutation

我希望区分我第一次开始上课,而不是我开始上课的所有其他时间。我创建了一个实例属性并将其值设置为True。对于所有后续实例,如何将该属性值设为False?

class Cool(Dude): 

    def __init__(self):
        self.coolnesscheck = True

2 个答案:

答案 0 :(得分:1)

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

class Cool:
    __firstinit = True

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

我在名称中添加__以引入Name Mangling,以便在课堂外无法轻松访问该属性。

答案 1 :(得分:0)

使用class属性,并在实例化该类的对象时将其设置为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
相关问题