Zanurkuj w Pythonie/Potęga introspekcji: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Piotr (dyskusja | edycje)
mNie podano opisu zmian
Robwolfe (dyskusja | edycje)
Nie podano opisu zmian
Linia 1:
{{Podświetl|py}}
W tym rozdziale dowiesz się o jednej z właściwościmocnych stron Pythona - introspekcji. Jak już wiesz, [[../Wszystko jest obiektem|wszystko w Pythonie jest obiektem]], natomiast introspekcja jest kodem, który postrzega funkcje i moduły znajdujące się w pamięci jako obiekty, a także pobiera o nich informacje i operuje nimi.
 
== Nurkujemy ==
Zacznijmy od kompletnego, działającego programu. Przeglądając kod na pewno rozumiesz już niektóre jego fragmenty. Przy niektórych liniach znajdują się liczby w komentarzach; korzystamy tu z koncepcji, którąktóre wykorzystywaliśmy już w [[Python/Twój pierwszy program|rozdziale drugim]]. Nie przejmuj się, jeżeli nie rozumiesz części programu. W rozdziale tym wszystkiego się nauczysz.
 
'''Przykład 4.1. <tt class="lang-none">apihelper.py</tt>'''
Linia 22:
# Funkcja <tt>info</tt> posiada wieloliniowy [[../Dokumentowanie funkcji|napis dokumentacyjny]], który opisuje jej zastosowanie. Zauważ, że funkcja nie zwraca żadnej wartości. Ta funkcja będzie wykorzystywana, aby wykonać pewną czynność, a nie żeby otrzymać pewną wartość.
# Kod wewnątrz funkcji jest [[../Wcięcia kodu|wcięty]].
# [[../Testowanie modułów|Sztuczka]] z <tt>if __name__</tt> pozwala wykonać programowi coś użytecznego, kiedy zostanie uruchamionyuruchomiony samodzielnie. Kod pod tą istrukcjąinstrukcją nie zostanie wykonany, jeśli kod ten wykorzystamy jako moduł w innym programie. W tym wypadku program wypisuje po prostu napis dokumentacyjny (tzw. ''docstring'') funckji <tt>info</tt>.
# [[../Testowanie modułów|WyrażenieInstrukcja <tt>if</tt>]] wykorzystuje <tt>==</tt> (dwa znaki równości), aby porównać dwie wartości. W istrukcjiinstrukcji <tt>if</tt> nie musimy korzystać z nawiasów okrągłych.
 
Funkcja <tt>info</tt> została zaprojektowana tak, aby ułatwić tobie pracę w IDE Pythona. IDE bierze jakiś obiekt, który posiada funkcje lub metody (jak na przykład moduł zawierający funkcje lub listę, która posiada metody) i wyświetla funkcje i ich napisy dokumentacyjne.