Metoda konstruktora (__init__)
Część sekcji Programowanie obiektowe ścieżki Python w Coddy. Lekcja 7 z 64.
Metoda __init__ to specjalna metoda, która uruchamia się automatycznie, gdy tworzysz nowy obiekt. Inicjalizuje atrybuty obiektu.
Oto przykład klasy z konstruktorem:
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breedMetoda __init__ przyjmuje parametry i przypisuje je do atrybutów instancji za pomocą self.
Twórz obiekty za pomocą konstruktora:
rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")Gdy wywołujesz Dog("Rex", "German Shepherd"), Python automatycznie wywołuje __init__ i przekazuje argumenty.
Uzyskaj dostęp do atrybutów ustawionych przez konstruktor:
print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)Wynik:
Rex
German Shepherd
Buddy
Golden RetrieverMożesz też mieć konstruktor z wartościami domyślnymi:
class Cat:
def __init__(self, name, age=1):
self.name = name
self.age = age
# Utwórz koty
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers") # domyślna wartość age to 1
print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")Wynik:
Fluffy is 3 years old
Whiskers is 1 years oldKluczowa kwestia: metoda __init__ zapewnia, że każdy obiekt jest prawidłowo konfigurowany przy użyciu początkowych danych podczas tworzenia. Dzięki niej nie musisz ręcznie ustawiać atrybutów po utworzeniu obiektu.
Wyzwanie
ŁatwyOtrzymujesz pliki Python (book.py i driver.py), aby zaimplementować system zarządzania książkami. W tym wyzwaniu zdefiniujesz klasę Book w jednym pliku, która zostanie zaimportowana i użyta w innym.
Twoje zadanie:
- Uzupełnij klasę
Bookw plikubook.pyo metodę__init__, która inicjalizuje atrybutytitle,authoripages - Plik
driver.pyzaimportuje i użyje Twojej klasyBook, aby utworzyć obiekt książki dla"Harry Potter" by "J.K. Rowling" with 400 pages
Postępuj zgodnie ze szczegółowymi komentarzami TODO w pliku book.py.
Spróbuj swoich sił
# TODO: Zaimportuj klasę Book z pliku book.py
# Użyj tego zapisu: from book import Book
# TODO: Utwórz obiekt książki o nazwie 'my_book' z następującymi wartościami:
# - title: "Harry Potter"
# - author: "J.K. Rowling"
# - pages: 400
# Przykład: my_book = Book("Title", "Author", pages)
# Wyświetl szczegóły książki
# TODO: Upewnij się, że my_book jest poprawnie zdefiniowany, zanim zostanie wykonany ten wiersz
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")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