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 self metoda 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ą self jako pierwszy parametr.
  • Zwracanie wartości (return) pozwala wykorzystać wynik metody poza klasą.