Klasy a obiekty
Część sekcji Programowanie obiektowe ścieżki Python w Coddy. Lekcja 3 z 64.
Klasy i obiekty służą różnym celom. Klasa jest planem, a obiekt to coś, co tworzysz na jego podstawie.
Oto przykład klasy:
class Dog:
# wspólne dla wszystkich psów
species = "Canis familiaris"Teraz możemy uzyskać bezpośredni dostęp do atrybutu klasy za pomocą Dog.species, gdzie Dog jest nazwą klasy:
print(f"Class species: {Dog.species}")
# Gatunek klasy: Canis familiarisUzyskuje dostęp do danych samej klasy, a nie żadnego konkretnego obiektu.
Teraz przyjrzyjmy się, jak działa to w przypadku obiektów. Utwórz obiekty klasy Dog:
dog1 = Dog()
dog2 = Dog()Obiekty mogą mieć indywidualne atrybuty, których klasy nie mogą mieć:
dog1.name = "Nicky"
dog1.breed = "Siberian Husky"
dog2.name = "Teemon"
dog2.breed = "Shu'ali"Porównaj, co mogą robić klasy i obiekty:
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}")Wynik:
Object 1: Nicky is a Siberian Husky
Object 2: Teemon is a Shu'ali
Both share class attribute: Canis familiarisKluczowa różnica: Klasa Dog definiuje cechy wspólne wszystkich psów, natomiast obiekty dog1 i dog2 reprezentują konkretne, pojedyncze psy o unikalnych właściwościach.
Wyzwanie
ŁatwyUzupełnij kod, aby utworzyć klasę Student i dwa obiekty uczniów. Dodaj każdemu uczniowi inne imię i ocenę.
student.py: Tutaj zdefiniujesz klasęStudent.driver.py: Główny plik wykonawczy, który zaimportuje klasę Student i będzie z niej korzystać:Uzupełnij kod, aby utworzyć klasę
Studenti dwa obiekty uczniów. Dodaj każdemu uczniowi inne imię i ocenę.Imię student1 to
"Alice", a ocena to"A".Imię student2 to
"Bob", a ocena to"B".
Spróbuj swoich sił
# Zaimportuj klasę Student
from student import Student
# TODO: Utwórz dwa obiekty uczniów
# TODO: Dodaj atrybuty do student1
# TODO: Dodaj atrybuty do student2
# Wyświetl informacje o uczniach
print(f"{student1.name} has grade {student1.grade} at {Student.school}")
print(f"{student2.name} has grade {student2.grade} at {Student.school}")Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Programowanie obiektowe
1Podstawy programowania obiektowego
Pliki zewnętrzneWprowadzenie do programowania obiektowegoKlasy a obiektyParametr selfMetodyAtrybutyMetoda konstruktora (__init__)Powtórzenie – prosty kalkulator4Dziedziczenie
Podstawy dziedziczeniaFunkcja super()Nadpisywanie metodDziedziczenie wielokrotneKolejność rozwiązywania metodPodsumowanie – hierarchia pracowników7Metody specjalne
Wprowadzenie do metod magicznychPrzeciążanie operatorówMagiczne metody kontenerówPowtórka – własna lista10Wzorce projektowe, część 1
Wprowadzenie do wzorców projektowychWzorzec SingletonWzorzec FactoryWzorzec ObserverWzorzec Strategy2Dekoratory
Wprowadzenie do dekoratorówDekorator propertyDekorator metody statycznejDekorator metody klasowej5Polimorfizm
Ponowne omówienie nadpisywania metodTypowanie kaczeKlasy i metody abstrakcyjneProjektowanie interfejsówPodsumowanie — kalkulator kształtów8Zaawansowane koncepcje programowania obiektowego
Kompozycja a dziedziczenieMiksyMetody statyczne i klasoweDekoratory klasMenedżery kontekstu11Wzorce projektowe, część 2
Wzorzec PolecenieWzorzec AdapterWzorzec DekoratorWzorzec Metoda szablonowaWzorzec StanWzorzec Kompozyt3Właściwości klas
Zmienne instancji a zmienne klasoweDekoratory właściwościAtrybuty prywatnePowtórzenie — menedżer kont bankowych6Hermetyzacja
Public, Protected, Private — pamięćModyfikatory dostępuUkrywanie informacjiDekoratory właściwości — zaawansowanePodsumowanie — system ewidencji uczniów12Projekt: System zarządzania biblioteką
Przegląd projektuKlasy Book i UserSystem wypożyczeńFunkcja wyszukiwaniaInterfejs administratoraTestowanie i integracjaPoćwicz samodzielnie: Kompilator Python online