Menu
Coddy logo textTech

Parametr self

Część sekcji Programowanie obiektowe ścieżki Python w Coddy. Lekcja 4 z 64.

Parametr self odnosi się do instancji klasy wewnątrz metod. Umożliwia dostęp do atrybutów bieżącego obiektu i ich modyfikowanie.

Oto przykład klasy z metodami używającymi self:

class Car:
    def honk(self):
        print("Beep beep!")
    
    def describe(self):
        print(f"I am a {self.color} {self.model}")

Parametr self musi być zawsze pierwszym parametrem w definicjach metod. Informuje metodę, który konkretny obiekt jest używany.

Utwórz obiekt samochodu i dodaj atrybuty:

my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"

Teraz wywołaj metody:

my_car.honk()
my_car.describe()

Wynik:

Beep beep!
I am a Red Sedan

Zwróć uwagę, że wywołując my_car.describe(), nie przekazujesz niczego dla self — Python automatycznie przekazuje my_car jako parametr self.

Oto, co dzieje się za kulisami:

# Kiedy piszesz tak:
my_car.describe()

# Python w rzeczywistości robi tak:
Car.describe(my_car)

Parametr self pozwala każdemu obiektowi uzyskać dostęp do własnych danych. Bez self metody nie wiedziałyby, których atrybutów obiektu użyć.

Najważniejsze: Zawsze umieszczaj self jako pierwszy parametr w definicjach metod, ale nigdy nie przekazuj go podczas wywoływania metod — Python robi to automatycznie.

challenge icon

Wyzwanie

Łatwy

Uzupełnij klasę Car w pliku car.py, dodając metodę o nazwie display_info, która używa parametru self, aby wyświetlić rok produkcji, markę i model samochodu w formacie:

"This car is a [year] [make] [model]".

  • car.py: zawiera definicję klasy Car, do której dodasz metodę display_info
  • driver.py: główny plik wykonywalny, który importuje klasę Car i z niej korzysta

Plik driver.py zaimportuje Twoją klasę Car i utworzy jej instancje, aby przetestować Twoją implementację. Upewnij się, że metoda działa poprawnie, gdy jest wywoływana z pliku sterującego.

Spróbuj swoich sił

from car import Car

# Przetestuj swój kod
my_car = Car()
my_car.year = 2020
my_car.make = "Toyota"
my_car.model = "Corolla"

my_car.display_info()  # Powinno wyświetlić: This car is a 2020 Toyota Corolla
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