9 Programowanie Obiektowe I

Tworzenie klasy:

1
2
3
4
5
class Noga:
    def start(self, a):
        self.ktora=a
    def pokaz(self):
        print(self.ktora)

klasa Noga ma dwie metody, 'start' gdzie poprzez zmienną 'a' przekazuje parametr do zmiennej self.ktora ...

Zwyczajowo powinno to być zapisane tak:
1
2
3
4
5
class Noga:
    def start(self, ktora):
        self.ktora=ktora
    def pokaz(self):
        print(self.ktora)

ale przykład pierwszy bardziej obrazowo przedstawia,  że to zmienna podana w nawiasie po self czyli a,  przenosi parametr do zmiennej nazwanej self.ktora. W dalszej części będę pisać tak jak w drugim przykładzie.


po co mamy self? o tym za chwilę po stworzeniu obiektu

Druga metoda 'pokaz' wyświetla nam zmienną odebraną przez 'start'.




Tworzenie Obiektu

Teraz na bazie tej tej klasy tworzymy 2 obiekty nazwane pierwsza i druga:
pierwsza = Noga()
druga = Noga()


Stworzyliśmy obiekty, możemy wywoływać metody.



Wywołanie metody

nazwaobiektu.metoda(parametr)

Poprzez wywołanie metody 'start' pierwszemu obiektowi nadajemy parametr PRAWA, drugiemu LEWA. (to za pomocą zmiennej 'a' z pierwszego przykładu, parametry w tym przypadku stringi "PRAWA" i "LEWA" przekazywane są do zmiennej self.ktora wewnątrz obiektu)

1
2
pierwsza.start("PRAWA")
druga.start("LEWA") 



Teraz wywołujemy metodą 'pokaz' dla jednego i drugiego obiektu.(bez parametrów)

1
2
pierwsza.pokaz()
druga.pokaz()

czego wynikiem jest wyświetlenie
PRAWA
LEWA

Poprzez stworzenie jednej klasy, możemy w łatwy sposób tworzyć dowolną ilość różnych obiektów, które posiadają cechy klasy,mają indywidualne zmienne którym nadajemy różne wartości.

Jak dostać się do tych indywidualnych zmiennych z obiektu?
Tutaj wyjaśnia się czym jest self...referencją do nazwy obiektu. Aby dostać się do zmiennej self.która obiektu 'pierwsza', w miejsce self wpisujemy nazwę obiektu,
czyli:

1
print(pierwsza.ktora)

wydrukuje nam:
PRAWA

tym samym tworząc w klasie jedną zmienną  self.ktora, poprzez tworzenie kolejnych obiektów tworzymy kolejne zmienne o nazwie nazwaobiektu.ktora w sposób łatwy i szybki.

Co najważniejsze teraz poprawiamy kod w jednym miejscu. Poprawka w klasie wpływa na wszystkie obiekty które z niego powstały.

Realizujemy zasadę DRY czyli don't repeat yourself.