[PYTHON] Klassenvariable

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

Klassenvariable
Klasse
Klasse
Python: Klassen- und Instanzvariablen
Globalisierung von Klasseninstanzvariablen
Python-Klassen- und Instanzvariablen
In Python-Klassenvariablen versteckte Landminen
[Python] -Variablen
Klassenvererbung
Wie soll ich auf Klassenvariablen zugreifen?
[Python] Erbt eine Klasse mit Klassenvariablen
Abstrakte Klasse
[Python] -Klasse, Instanz
Über Python, Klasse
Unterschied zwischen Variablen und Selbst. Variablen in der [Python] -Klasse
Gehen Sie zu den Grundlagen des Unterrichts
Probleme mit pseudo-privaten Python-Variablen und Klassenvererbung
Seitenverarbeitungsklasse
Shell-Variablen, Umgebungsvariablen
Klassenmethode statische Methode
Python-Klasse, Instanz
Proprietäre Ausnahmeklasse
Klasse zum Konvertieren von JSON
# Python-Grundlagen (Klasse)