Menu
Coddy logo textTech

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 = breed

Metoda __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 Retriever

Moż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 old

Kluczowa 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.

challenge icon

Wyzwanie

Łatwy

Otrzymujesz 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ę Book w pliku book.py o metodę __init__, która inicjalizuje atrybuty title, author i pages
  • Plik driver.py zaimportuje i użyje Twojej klasy Book, 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")
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Python online