20_PY. Klasy w Python3

Klasy w Python3 są pudełkami, do których wkłada się funkcje lub zmienne. Aby zdefiniować takie puste pudełko, należy wykonać kod. 

class MojePudełko:
    pass

Pass informuje Pythona, że to koniec instrukcji. Klasa „MojePudełko” jest pusta.

Tworzenie klas i podklas

Można tworzyć klasy i podklasy. Innymi słowy można tworzyć pudełka w pudełkach. Klasy w Python3 nazywane są rodzicami a podklasy dziećmi tych klas.

Poniższy kod tworzy pustą klasę „samochody”, następnie tworzy dwie puste podklasy: „osobowe” i „ciężarowe”. Dodatkowo kod tworzy podklasy dla samochodów osobowych: „dostawcze” i „rodzinne”.

class samochody:
    pass
class ciężarowe(samochody):
    pass
class osobowe(samochody):
    pass
class dostawcze(osobowe):
    pass
class rodzinne (osobowe):
    pass
 
Schemat utworzonej struktury pustych klas i podklas.

Tworzenie instancji w klasach

 Jeżeli klasy zostały porównane do pudełek, to podklasy są pudełkami w pudełkach. Wtedy instancje można porównać do przegródek w tych pudełkach. 

W przykładzie z samochodami takimi instancjami mogą być dane o samochodach takie jak: moc silnika, pojemność bagażnika czy prędkość maksymalna.

Można zauważyć, że poszczególne klasy mogą mieć te same instancje np. moc silnika, długość, całkowita masa pojazdu. Niektóre instancje będą jednak specyficzne dla określonych klas. Instancja pojemność bagażnika nie będzie miała zastosowania w samochodach ciężarowych.

Poniższy kod dodaje instancje do poszczególnych klas samochodów. Kod należy wkleić pod wcześniejszym kodem zakładającym klasy.

pojemność_bagażnika = osobowe()
pojemność_silnika = samochody()
pojemność_skrzyni_ładunkowej = ciężarowe()
moc_silnika = samochody()

Instancje są przyporządkowane do głównych klas i emigrują do podklas. W głównych klasach nie może być instancji, ponieważ nie zakładamy istnienia samochodu, który nie był by ciężarówką ani samochodem osobowym (niebrane pod uwagę są autobusy i pojazdy specjalne).

Powyższy kod można zobrazować schematem. W żółtych polach pokazane są instancje przypisane do poszczególnych klas.

Klasy w Python3 służą do porządkowania i skracania kodu. Klasy można porównać do pudełek czy zbiorów. W tych pudełkach znajdują się instancje, które można porównać do specyficznych lub uniwersalnych przegródek.

Jeżeli zostanie utworzona klasa: „dowód osobisty” to do tej klasy możemy przypisać wszelkie instancje związane z danymi personalnym: Imię, nazwisko, kolor oczu, PESEL, datę wydania dokumentu oraz kto wydał ten dokument.

Jeżeli powstanie klasa: „dane do faktury”, nazwy niektórych instancji będą podobne, lecz zdecydowana większość instancji będzie się znacznie różnić.

W następnym wpisie będę kontynuował klasy w Python3, zajmę się również definiowaniem funkcji w klasach.