Classes vs Objets
Fait partie de la section Object Oriented Programming du Journey Python de Coddy — leçon 3 sur 64.
Les classes et les objets servent des objectifs différents. Une classe est un plan, tandis qu'un objet est ce que vous construisez à partir de ce plan.
Voici un exemple de classe :
class Dog:
# partagé par tous les chiens
species = "Canis familiaris"Maintenant, nous pouvons accéder directement à l'attribut de classe en utilisant Dog.species où Dog est le nom de la classe :
print(f"Class species: {Dog.species}")
# Espèce de la classe : Canis familiarisCela accède aux données de la classe elle-même, et non d'un objet spécifique.
Explorons maintenant comment cela fonctionne dans les objets. Créez des objets à partir de la classe Dog :
dog1 = Dog()
dog2 = Dog()Les objets peuvent avoir des attributs individuels que les classes n'ont pas :
dog1.name = "Nicky"
dog1.breed = "Siberian Husky"
dog2.name = "Teemon"
dog2.breed = "Shu'ali"Comparez ce que les classes et les objets peuvent faire :
print(f"Object 1: {dog1.name} is a {dog1.breed}")
print(f"Object 2: {dog2.name} is a {dog2.breed}")
print(f"Both share class attribute: {Dog.species}")Sortie :
Object 1: Nicky is a Siberian Husky
Object 2: Teemon is a Shu'ali
Both share class attribute: Canis familiarisDifférence clé : La classe Dog définit ce que tous les chiens ont en commun, tandis que les objets dog1 et dog2 représentent des chiens spécifiques et individuels avec des propriétés uniques.
Défi
FacileComplétez le code pour créer une classe Student et deux objets étudiants. Ajoutez des noms et des notes différents à chaque étudiant.
student.py: C'est ici que vous définirez votre classeStudent.driver.py: Fichier d'exécution principal qui importera et utilisera votre classe Student :Complétez le code pour créer une classe
Studentet deux objets étudiants. Ajoutez des noms et des notes différents à chaque étudiant.le nom de student1 est
"Alice"avec la note"A".le nom de student2 est
"Bob"avec la note"B".
Aide-mémoire
Une classe est un modèle qui définit des attributs et des comportements partagés. Un objet est une instance créée à partir de cette classe avec des propriétés individuelles.
Définir une classe :
class Dog:
# Attribut de classe - partagé par toutes les instances
species = "Canis familiaris"Accéder directement aux attributs de classe :
print(Dog.species) # Canis familiarisCréer des objets à partir d'une classe :
dog1 = Dog()
dog2 = Dog()Ajouter des attributs individuels aux objets :
dog1.name = "Nicky"
dog1.breed = "Siberian Husky"
dog2.name = "Teemon"
dog2.breed = "Shu'ali"Les objets peuvent accéder à la fois à leurs attributs individuels et aux attributs de classe :
print(f"{dog1.name} is a {dog1.breed}") # Attributs individuels
print(f"Species: {Dog.species}") # Attribut de classeEssayez vous-même
# Importer la classe Student
from student import Student
# TODO: Créer deux objets student
# TODO: Ajouter des attributs à student1
# TODO: Ajouter des attributs à student2
# Afficher les informations de l'étudiant
print(f"{student1.name} has grade {student1.grade} at {Student.school}")
print(f"{student2.name} has grade {student2.grade} at {Student.school}")Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Object Oriented Programming
1Les fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses vs ObjetsLe paramètre selfMéthodesAttributsMéthode constructeur (__init__)Récapitulatif - Calculatrice simple4Héritage
Héritage de baseLa fonction super()Redéfinition de méthodeHéritage multipleOrdre de résolution des méthodesRécapitulatif - Hiérarchie des employés7Méthodes spéciales
Introduction aux méthodes magiquesSurcharge d'opérateursMéthodes magiques de conteneurRécapitulatif - Liste personnalisée10Patrons de conception, Partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FactoryPatron ObserverPatron Strategy2Décorateurs
Introduction aux décorateursDécorateur de propriétéDécorateur de méthode statiqueDécorateur de méthode de classe5Polymorphisme
Retour sur la redéfinition de méthodeDuck TypingClasses et méthodes abstraitesConception d'interfacesRécapitulatif - Calculateur de formes8Concepts avancés de la POO
Composition vs HéritageMixinsMéthodes statiques et de classeDécorateurs de classeGestionnaires de contexte11Patrons de conception, Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode TemplatePatron ÉtatPatron Composite3Propriétés de classe
Variables d'instance vs variables de classeDécorateurs de propriétéAttributs privésRécapitulatif - Gestionnaire de compte bancaire