Co oznacza słowo kluczowe “self” w Pythonie?

W programowaniu obiektowym w Pythonie często spotyka się słowo kluczowe self. Jest to istotny element, który pozwala na dostęp do atrybutów i metod w obrębie klasy. Zrozumienie jego funkcjonalności jest kluczowe dla efektywnego tworzenia i zarządzania klasami oraz instancjami tych klas.

Przykład kodu z wyjaśnieniami

Załóżmy, że mamy klasę reprezentującą samochód, który posiada różne atrybuty, takie jak marka, model i rok produkcji. Użyjemy self, aby zdefiniować i manipulować tymi atrybutami wewnątrz klasy.

class Car:
    def __init__(self, brand, model, year):
        # Używamy self do przypisania wartości do atrybutów
        # klasy w konstruktorze (__init__)
        self.brand = brand
        self.model = model
        self.year = year

    def display_car_info(self):
        # Używamy self do dostępu do atrybutów instancji klasy
        # w metodzie klasy
        print("Marka: ", self.brand)
        print("Model: ", self.model)
        print("Rok produkcji: ", self.year)

# Tworzenie instancji klasy Car
my_car = Car("Toyota", "Corolla", 2020)

# Wywołanie metody display_car_info
# dla instancji my_car
my_car.display_car_info()

Wyjaśnienie działania self

  • self w definicji metody klasy (np. __init__, display_car_info) oznacza instancję klasy, na rzecz której metoda jest wywoływana. Pozwala to na dostęp i modyfikację atrybutów tej instancji.
  • W konstruktorze __init__, self używane jest do inicjalizacji atrybutów każdej nowej instancji klasy Car.
  • W metodzie display_car_info, self pozwala na dostęp do atrybutów instancji, takich jak brand, model, i year, aby móc je wyświetlić.

Podsumowanie

Słowo kluczowe self jest fundamentalnym elementem programowania obiektowego w Pythonie. Umożliwia ono metodom klasy dostęp do jej atrybutów i innych metod, co jest niezbędne do tworzenia złożonych systemów opartych na klasach i obiektach. Bez self, zarządzanie stanem i zachowaniami instancji klasy byłoby znacznie trudniejsze.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs Python od podstaw w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top