1
class Person(object):
kind = 'human'
def __init__(self, name):
self.name = name
def who_are_you(self):
print(self.name, self.kind)
p1 = Person('A')
p2 = Person('B')
p1.who_are_you()
p2.who_are_you()
Résultat d'exécution de 1
A human
B human
La variable de classe (kind dans ce cas) est Il est partagé par tous les objets créés.
2
class T(object):
words = []
def add_word(self, word):
self.words.append(word)
c = T()
c.add_word('apple')
c.add_word('banana')
print(c.words)
d = T()
d.add_word('orange')
d.add_word('cake')
print(d.words)
Résultat d'exécution de 2
['apple', 'banana']
['apple', 'banana', 'orange', 'cake']
J'ai créé deux objets, un objet appelé c et un objet appelé d, Parce que les mots sont une variable de classe Il a été partagé par c et d.
Cela peut entraîner des bogues.
Pour éviter cela
Initialisez (affectez à la variable d'instance) avec __init__
à chaque fois.
3
class T(object):
def __init__(self):
self.words = []
def add_word(self, word):
self.words.append(word)
c = T()
c.add_word('apple')
c.add_word('banana')
print(c.words)
d = T()
d.add_word('orange')
d.add_word('cake')
print(d.words)
Résultat d'exécution de 3
['apple', 'banana']
['orange', 'cake']
Recommended Posts