Klassen vs. Objekte
Teil des Abschnitts Objektorientierte Programmierung der Python-Journey von Coddy. Lektion 3 von 64.
Klassen und Objekte dienen unterschiedlichen Zwecken. Eine Klasse ist ein Bauplan, während ein Objekt das ist, was Sie aus diesem Bauplan erstellen.
Hier ist ein Beispiel für eine Klasse:
class Dog:
# gemeinsam von allen Hunden genutzt
species = "Canis familiaris"Jetzt können wir direkt auf das Klassenattribut zugreifen, indem wir Dog.species verwenden, wobei Dog der Klassenname ist:
print(f"Class species: {Dog.species}")
# Class species: Canis familiarisDies greift auf Daten von der Klasse selbst zu, nicht von einem bestimmten Objekt.
Jetzt schauen wir uns an, wie es in Objekten funktioniert. Erstellen Sie Objekte aus der Klasse Dog:
dog1 = Dog()
dog2 = Dog()Objekte können individuelle Attribute haben, die Klassen nicht haben können:
dog1.name = "Nicky"
dog1.breed = "Siberian Husky"
dog2.name = "Teemon"
dog2.breed = "Shu'ali"Vergleichen Sie, was Klassen und Objekte tun können:
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}")Ausgabe:
Object 1: Nicky is a Siberian Husky
Object 2: Teemon is a Shu'ali
Both share class attribute: Canis familiarisHauptunterschied: Die Klasse Dog definiert, was alle Hunde gemeinsam haben, während die Objekte dog1 und dog2 spezifische, individuelle Hunde mit einzigartigen Eigenschaften darstellen.
Aufgabe
EinfachVervollständige den Code, um eine Student-Klasse und zwei Studentenobjekte zu erstellen. Füge jedem Studenten einen anderen Namen und eine andere Note hinzu.
student.py: Hier definierst du deineStudent-Klasse.driver.py: Hauptausführungsdatei, die deine Student-Klasse importiert und verwendet:Vervollständige den Code, um eine
Student-Klasse und zwei Studentenobjekte zu erstellen. Füge jedem Studenten einen anderen Namen und eine andere Note hinzu.Der Name von student1 ist
"Alice"und die Note ist"A".Der Name von student2 ist
"Bob"und die Note ist"B".
Probier es selbst
# Importiere die Student-Klasse
from student import Student
# TODO: Erstelle zwei Student-Objekte
# TODO: Füge Attribute zu student1 hinzu
# TODO: Füge Attribute zu student2 hinzu
# Gib die Studenteninformationen aus
print(f"{student1.name} has grade {student1.grade} at {Student.school}")
print(f"{student2.name} has grade {student2.grade} at {Student.school}")Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienEinführung in die OOPKlassen vs. ObjekteDer self-ParameterMethodenAttributeKonstruktormethode (__init__)Zusammenfassung – Einfacher Taschenrechner4Vererbung
Grundlegende VererbungDie super()-FunktionMethodenüberschreibungMehrfachvererbungMethodenauflösungsreihenfolgeWiederholung – Mitarbeiterhierarchie7Spezielle Methoden
Einführung in magische MethodenOperatorüberladungMagische Methoden für ContainerRückblick – Benutzerdefinierte Liste10Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster13Abschließende Herausforderungen
E-Learning-PlattformBankensystemEntwicklung von SpielfigurenFahrzeugvermietungsservice2Dekoratoren
Einführung in DekoratorenProperty-DekoratorDekorator für statische MethodenDekorator für Klassenmethoden5Polymorphie
Methodenüberschreibung erneut betrachtetDuck-TypingAbstrakte Klassen und MethodenSchnittstellendesignRückblick – Formrechner8Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungMixinsStatische Methoden und KlassenmethodenKlassen-DekoratorenKontextmanager3Klassenattribute
Instanz- vs. KlassenvariablenProperty-DecoratorsPrivate AttributeWiederholung – Bankkontoverwaltung6Kapselung
Öffentliche, geschützte, private MemberZugriffsmodifikatorenInformationsverbergungProperty-Decorators – FortgeschrittenWiederholung – System zur Verwaltung von Studentendaten12Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und BenutzerklassenAusleihsystemSuchfunktionAdministrationsoberflächeTests und IntegrationÜbe selbstständig: Online-Python-Compiler