Rozdział 14 · Tworzenie rzeczywistych obiektów

Zarządzanie obiektami

Atrybuty można zmieniać po utworzeniu obiektu — a metody nadają obiektowi własne działania.

Zarządzanie obiektami

Wartości atrybutów można zmieniać już po utworzeniu obiektu — tak samo, jak zmienia się wartość zwykłej zmiennej:

menyaem_atributy.py
rex = Sobaka(„Rex”, 3)
rex.vozrast = 4   # Rex miał urodziny
print(rex.vozrast)

Obiekty wykonują działania

Oprócz danych (atrybutów), klasa może mieć własne działania — metody: funkcje normalne zdefiniowane w klasie, które mają dostęp do self a przez to także atrybuty obiektu:

metody.py
class Sobaka:
    def __init__(self, klichka, vozrast):
        self.klichka = klichka
        self.vozrast = vozrast

    def layat(self):
        print(f"{self.klichka} powiedział: „Hau-hau!”")

    def prazdnovat_den_rozhdeniya(self):
        self.vozrast += 1
        print(f"Teraz {self.klichka} się odwrócił {self.vozrast}!")

rex = Sobaka(„Rex”, 3)
rex.layat()
rex.prazdnovat_den_rozhdeniya()
Znana notacja
rex.layat() zorganizowane dokładnie tak samo, jak artist.forward(100) lub "текст".upper() — metody obiektów, których już od dawna używasz, działają dokładnie tak samo jak metoda layat(), że właśnie sam napisałeś.
Sobakaklichkavozrastlayat()prazdnovat_den_rozhdeniya()
Klasa Sobaka — teraz z metodami
self nie jest słowem kluczowym
self — zwyczajowa nazwa parametru wybrana konwencją, a nie słowo zastrzeżone Python (w przeciwieństwie do if lub class). Technicznie rzecz biorąc, metoda będzie działać z nazwą this lub obj — ale użyj self zawsze: tak nazywa go cały kod Python, a każda inna nazwa może zdezorientować innych czytających twój kod. Szczegóły miejsca self pobiera się przy wywołaniu, omówimy w rozdziale 14.5.
Praktyka: metody i zmiana atrybutów
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →