Programowanie to pisanie kodu, a kodu tego po jakimś czasie zaczyna być dużo. By się w tym połapać, kod dzielimy, między innymi na funkcje. Specyficznym typem funkcji są zaś metody. Gdy bowiem rozmawialiśmy o funkcjach, powiedzieliśmy sobie, jak ważne one są. Funkcje są podstawowymi "cegiełkami" w programowani. Dzięki funkcjom możemy wydzielić dowolny kod odpowiedzialny za dane działanie i nadać mu nazwę
Metoda też jest funkcją, jednak bardziej specjalizowaną. Mam tu na myśli, że metoda to funkcja należąca do danej klasy. Możemy to porównać do człowieka, ma on jakieś swoje atrybuty - kolor oczu, włosy, nos. Ma on też metody działania, jakich się wyuczył na przestrzeni lat, i jakich używa. Możemy to nawet nazwać jego zachowaniami lub działaniami.
Wstęp - czym są metody
Podobnie sytuacja ma się z klasami, o których niedawno rozmawialiśmy. Klasa to właśnie trochę taki człowiek, ma swoje atrybuty, ale ma również to co Nas dziś interesuje, czyli metody. Metody dane klasy, to nic innego jak zachowanie, na które obiekt tej klasy może sobie pozwolić. Przykładowo wróćmy do Naszej klasy z poprzedniej lekcji.

W stworzonej już klasie Person, mamy jej właściwości, które definiujemy w konstruktorze. Pod konstruktorem natomiast, mamy Naszą pierwszą metodę. Ostatnio trochę wspomnieliśmy o niej. Jest to po prostu zdefiniowana w ciele klasy funkcja (tutaj metoda), która może działać na atrybutach obiektu. Dlatego właśnie, Nasz funkcja (w ciele klasy, czyli metoda), może wyświetlić imię i nazwisko tej konkretnej osoby. Oczywiście osoby jeszcze nie ma, bo nie stworzono obiektu tej klasy.
Można jeszcze metody określić trochę innymi słowami. Możemy powiedzieć, że metoda to funkcja, wywoływana na rzecz instancji danej klasy.
Zagłębijmy się w metody
Wyżej, wspomniałem, że metody to trochę takie zachowania. Mamy właśnie dobry przykład to ilustrujący, bowiem obiekt stworzony na postawie Naszej klasy Person - czyli dana osoba - może przykładowo mieć zachowanie chodzenia. Innymi słowy może chodzić (dużo osób to potrafi). Osoba może też biegać, i inne.
Spróbujmy sobie w jakiś prosty, symboliczny sposób zaimplementować te zachowania za pomocą metod w Naszej klasie. Stworzymy metodę walk - odpowiadającą chodzeniu i run - odpowiedzialną za bieganie. Do klasy Person dopisujemy po prostu nową definicję funkcji, którą zwiemy metodą.

Oczywiście dopisując definicję nowej metody, musimy pamiętać by jako pierwszego parametru użyć self. Tak by ta metoda działała na aktualnym obiekcie, na rzecz którego uruchamiamy metodę. Oprócz tego, w Naszym kodzie po prostu wyświetlamy sobie napis 'Chodzę' na ekranie, żeby nie bawić się w skomplikowane algorytmy.
Efekt działania kodu
Jeśli teraz uruchomimy Nasz kod, oczywiście nie zobaczymy żadnych efektów jego działania. Zdefiniowaliśmy bowiem klasę, wraz z jej metodami, ale nie użyliśmy jej nigdzie. Stwórzmy zatem jakiś obiekt na podstawie tej klasy i wywołajmy jego metody.

Jak możemy zauważyć wyżej, po dopisaniu kodu odpowiedzialnego za tworzeniu obiektu p1 na postawie klasy Person, a także za wywołanie jego metody introduce_yourself i walk. Na ekranie widzimy dokładnie to, co zaimplementowaliśmy w tych metodach. Najpierw Nasz obiekt p1 przedstawia się z imienia i nazwiska, a następnie oznajmia wszem i wobec, że jest w trakcie czynności chodzienia. Warto wspomnieć, że metody wywołujemy po kropce, co symbolizuje niejako 'wchodzenie w głąb' obiekt.
Do implementacji została Nam jeszcze metoda run, która będzie odpowiadać za bieganie. Zostawiam ją natomiast Tobie, na zadanie domowe, byś trochę poćwiczył i może puścił wodze fantazji. Umiesz już trochę, więc rozwiń tą metodę by robiła coś ciekawszego niż po prostu wyświetlanie tekstu, a rezultatami pochwal się w komentarzu!

[…] że juź doskonale wiesz, jak zachowa się powyższy kod, ale dla formalności. Tworzymy klasę Person, która ma atrybut name i surname, a później kolejno tworzymy trzy instancje: Jan, Anna i Piotr. […]