Variable de classe

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

Variable de classe
Variable de classe
classe
classe
Python: variables de classe et d'instance
Globalisation des variables d'instance de classe
Variables de classe et d'instance Python
Les mines terrestres cachées dans les variables de classe Python
[Python] Variables
Héritage de classe
Comment accéder aux variables de classe?
[Python] Hériter d'une classe avec des variables de classe
Classe abstraite
[Python] classe, instance
À propos de python, classe
[python] Différence entre variable et self. Variable dans la classe
Aller aux bases de la classe
Problème avec les variables pseudo-privées Python et l'héritage de classe
Classe de traitement de page
Variables shell, variables d'environnement
Méthode de classe Méthode statique
classe python, instance
Classe d'exception propriétaire
Classe pour convertir JSON
Les bases de #Python (classe)