Dans cette étape, vous apprendrez à propos des attributs de classe en Python. Les attributs de classe sont des variables définies à l'intérieur d'une classe et partagées par toutes les instances (objets) de cette classe. Ils sont différents des attributs d'instance, qui sont spécifiques à chaque instance. Comprendre les attributs de classe est essentiel pour concevoir des classes efficaces et organisées.
-
Ouvrez votre éditeur VS Code.
-
Créez un nouveau fichier nommé class_attributes.py
dans le répertoire ~/project
.
~/project/class_attributes.py
-
Ajoutez le code suivant au fichier class_attributes.py
:
class Dog:
species = "Canis familiaris"
def __init__(self, name, age):
self.name = name
self.age = age
## Creating instances of the Dog class
dog1 = Dog("Buddy", 3)
dog2 = Dog("Lucy", 5)
## Accessing the class attribute
print(dog1.species)
print(dog2.species)
## Accessing instance attributes
print(dog1.name)
print(dog2.name)
Dans cet exemple, species
est un attribut de classe car il est défini à l'intérieur de la classe Dog
mais en dehors de toute méthode. name
et age
sont des attributs d'instance car ils sont définis à l'intérieur de la méthode __init__
et sont spécifiques à chaque instance de Dog
.
-
Exécutez le script class_attributes.py
en utilisant la commande suivante dans le terminal :
python class_attributes.py
Vous devriez voir la sortie suivante :
Canis familiaris
Canis familiaris
Buddy
Lucy
Comme vous pouvez le voir, tant dog1
que dog2
partagent la même valeur pour species
, qui est "Canis familiaris". Cependant, ils ont des valeurs différentes pour name
car name
est un attribut d'instance.
-
Maintenant, modifions l'attribut de classe et voyons comment cela affecte les instances :
class Dog:
species = "Canis familiaris"
def __init__(self, name, age):
self.name = name
self.age = age
## Creating instances of the Dog class
dog1 = Dog("Buddy", 3)
dog2 = Dog("Lucy", 5)
## Accessing the class attribute
print(dog1.species)
print(dog2.species)
## Modifying the class attribute
Dog.species = "New Species"
## Accessing the class attribute again
print(dog1.species)
print(dog2.species)
-
Exécutez à nouveau le script class_attributes.py
:
python class_attributes.py
Vous devriez voir la sortie suivante :
Canis familiaris
Canis familiaris
New Species
New Species
Remarquez que lorsque nous modifions Dog.species
, le changement est reflété dans dog1
et dog2
car ils partagent le même attribut de classe.
Cet exemple démontre le concept de base des attributs de classe. Ils sont partagés entre toutes les instances d'une classe et peuvent être modifiés en accédant directement à la classe.