2015-10-17 4 views
2

Я хочу отличить первый раз, когда инициирую класс из всех других случаев, которые я инициирую. Я создал атрибут экземпляра и установил его значение True. Что я делаю для всех последующих экземпляров, чтобы иметь значение этого атрибута как ложное?Как мне изменить или изменить атрибут экземпляра?

class Cool(Dude): 

    def __init__(self): 
     self.coolnesscheck = True 

ответ

1

Вы можете использовать атрибут class, чтобы указать, был ли первый объект создан или нет. Пример -

class Cool: 
    __firstinit = True 

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

Я предваряя __ во имя ввести Name Mangling, так что атрибут не легко доступны за пределами класса.

+0

Хорошо, да правильно. Совершено –

+0

Спасибо, это сработало! – dxbmozzarella

+0

Рад, что мне было полезно! :-). Если вы считаете, что ответы были helpul, я также хотел бы попросить вас принять ответ (любой ответ, который вы считаете наиболее полезным), нажав на отметку в левой части ответа, это было бы полезно для сообщества , –

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