Atrybuty i metody w Python
1. Atrybuty w klasach
Atrybuty to zmienne powiązane z klasą lub obiektem. Mogą przechowywać różne dane (np. liczby, teksty, listy) i są częścią stanu obiektu.
1.1 Atrybuty instancji
- Tworzone dla konkretnego obiektu.
- Zwykle definiowane w metodzie
__init__. - Każdy obiekt może mieć inne wartości tych atrybutów.
Przykład:
auto1 i auto2 to różne instancje tej samej klasy, ale każda z nich ma swoje własne wartości atrybutów.
1.2 Atrybuty klasowe
- Wspólne dla wszystkich obiektów danej klasy.
- Definiowane wewnątrz klasy, ale poza metodami.
- Zmiana atrybutu klasowego wpływa na wszystkie instancje (chyba że obiekt nadpisze go własnym atrybutem).
Przykład:
1.3 Różnice i dobre praktyki
- Atrybuty instancji – opisują cechy konkretnego obiektu (np. kolor samochodu, imię psa).
- Atrybuty klasowe – opisują wspólne właściwości wszystkich obiektów (np. liczba kół w samochodzie, gatunek psa).
-
Dobre praktyki:
-
Używaj atrybutów instancji do rzeczy, które mogą się różnić między obiektami.
- Używaj atrybutów klasowych do rzeczy wspólnych dla wszystkich obiektów.
- Nazwy atrybutów powinny być czytelne i opisowe.
- Nie należy nadmiernie używać atrybutów klasowych – mogą prowadzić do błędów, jeśli obiekty przypadkowo je nadpiszą.
2. Metody w klasach
Metody to funkcje zdefiniowane wewnątrz klasy, które opisują zachowania obiektów.
2.1 Metody instancji
- Najczęściej spotykany rodzaj metod.
- Pierwszy parametr musi nazywać się
self→ odnosi się do konkretnej instancji klasy. - Dzięki
selfmetoda ma dostęp do atrybutów i innych metod tego samego obiektu.
Przykład:
self.imie pozwala metodzie szczekaj() odwołać się do imienia konkretnego psa.
2.2 Parametry metod
Metody mogą przyjmować dodatkowe parametry, tak samo jak zwykłe funkcje.
Przykład:
2.3 Zwracanie wartości z metod
- Do zwracania wyników używamy słowa kluczowego
return. - Jeśli metoda niczego nie zwraca, domyślnie zwraca
None.
Przykład:
3. Podsumowanie
- Atrybuty instancji → unikalne dla każdego obiektu.
- Atrybuty klasowe → wspólne dla wszystkich obiektów danej klasy.
- Metody instancji → opisują zachowanie obiektów, zawsze mają
selfjako pierwszy parametr. - Zwracanie wartości (
return) pozwala wykorzystać wynik metody poza klasą.