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()
Ausführungsergebnis von 1
A human
B human
Die Klassenvariable (in diesem Fall Art) ist Es wird von allen erstellten Objekten gemeinsam genutzt.
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)
Ausführungsergebnis von 2
['apple', 'banana']
['apple', 'banana', 'orange', 'cake']
Ich habe zwei Objekte erstellt, ein Objekt namens c und ein Objekt namens d, Weil Wörter eine Klassenvariable sind Es wurde von c und d geteilt.
Dies kann zu Fehlern führen.
Um dies zu verhindern Initialisieren (Instanzvariable zuweisen) jedes Mal mit "init".
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)
Ausführungsergebnis von 3
['apple', 'banana']
['orange', 'cake']
Recommended Posts