21_PY. Definiowanie funkcji dla klas

Definiowanie funkcja dla klas w języku Python3 robi się podobnie jak definiowanie zwykłych funkcji. 

Definiowanie prostej funkcji.

def pole_równoległoboku(x,y):
    return x*y

Teraz po podstawieniu do tej funkcji zmiennych 2 i 3 funkcja daje wynik 6.

print(pole_równoległoboku(2,3))

 Definiowanie funkcja dla klas 

Aby dodać funkcje w obrębie klasy należy postępować podobnie jak w przykładzie powyżej, lecz należy pamiętać o dwóch rzeczach. Po pierwsze musi być wcięcie czterech spacji, to sposób pokazujący Paytonowi, że dana definicja jest robiona w obrębie określonej klasy. Drugi bardzo ważny element to parametr self.

 Parametr self to sposób, aby jedna funkcja mogła wywołać drugą funkcję z tej samej klasy lub z klasy nadrzędnej 

Poniższy kod tworzy trzy puste klasy brył geometrycznych. Dodatkowo do tych brył kod tworzy funkcję informacyjną print. Funkcja wyświetla komunikat dotyczący określonej bryły geometrycznej.

Cześć pierwsza: zakładanie klas i definiowanie funkcja dla klas

class bryły:
    pass

class graniastosłup(bryły):
    def objętość(self):
        print('Wzór na objętość graniastosłupa')

class walec(bryły):
    def objętość(self):
        print('Wzór na objętość walca')

class stożek(bryły):
    def objętość(self):
        print('Wzór na objętość stożka')

Część druga: wrzucanie do pustych klas obiektów

Jak wspomniałem klasa to rodzaj pudełka, jeżeli do klas nie zostaną przypisane obiekty, zbiory będą puste. Proszę skopiować ciąg dalszy kodu. Kod przypisuje instancje do określonych klas.

Zbiorniki_A = walec()
Zbiorniki_B = graniastosłup()
Pryzmy_FF = stożek()

Część trzecia: uruchomienie określonych funkcji dla instancji znajdujących się w klasach

Aby uruchomić funkcję dla określonej klasy, za nazwą instancji z tej klasy należy po kropce wpisać nazwę funkcji przypisanej do tej klasy. Proszę zauważyć, że funkcje w każdej z trzech klas mają tą samą nazwę: objętość(). Mimo to Python wie, którą funkcję ma uruchomić, dla której instancji.

Zbiorniki_A.objętość()
Zbiorniki_B.objętość()
Pryzmy_FF.objętość()

Wynik kodu:

Wzór na objętość walca
Wzór na objętość graniastosłupa
Wzór na objętość stożka
Process finished with exit code 0

 

W kolejnym wpisie pokazane będzie jak tworzyć atrybuty przypisane do klas i do instancji.

W tym wpisie pokazałem jak przeprowadzić definiowanie funkcja dla klas.