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

Usunięta treść Dodana treść
Warszk (dyskusja | edycje)
tłumaczenie
Warszk (dyskusja | edycje)
tłumaczenie c.d. + szblon nawigacyjny + kategoria
Linia 1:
{{prognav|Python|Wbudowane typy danych|Obiekty i klasy}}
 
W tym rozdziale dowiesz się o jednej z właściwości Pythona: '''introspekcji'''. Jak już wiesz, wszystko w Pythonie jest obiektem a introspekcja to kod, którego zadaniem jest obserwacja innych modułów i funkcji w pamięci jako obiektów, pobieranie informacji o nich oraz operowanie nimi.
 
Linia 53 ⟶ 55:
Returns string.
 
==Użycie argumentów opcjonalnych i "nazwanych"==
 
Python pozwala argumentom funkcji posiadać wartości domyślne. Jeżeli funkcja jest wywoływana bez argumentów, przypisywane są im wartości zdefiniowane jako domyślne. Co więcej, argumenty mogą być określone poprzez użycie ich nazw.
 
Poniżej przykład funkcji <tt>info</tt> z dwoma argumentami opcjonalnymi:
 
def info(object, spacing=10, collapse=1):
 
<tt>spacing</tt> oraz <tt>collapse</tt> są opcjonalne, ponieważ mają przypisane wartości domyślne. <tt>object</tt> jest wymagany, ponieważ nie posiada wartości domyślnej. Jeżeli <tt>info</tt> jest wywoływane z tylko jednym argumentem, <tt>spacing</tt> przyjmuje wartości 10 a <tt>collapse</tt> 1. Jeżeli wywołamy tę funkcję z dwoma argumentami, tylko <tt>collapse</tt> przyjmuje wartość domyślną (w tym przypadku 1).
 
Powiedzmy, że chcesz określić wartość dla <tt>collapse</tt>, ale także chcesz przyjąć wartość domyślną dla <tt>spacing</tt>. W większości języków ta sztuczka nie uda się, ponieważ będziesz zmuszony do wywołania funkcji z trzema argumentami. Ale w Pythonie argumenty można określać poprzez ich nazwę, w jakiejkolwiek kolejności.
 
Przykład 4.4. Poprawne wywołania funkcji <tt>info</tt>
 
info(odbchelper) #(1)
info(odbchelper, 12) #(2)
info(odbchelper, collapse=0) #(3)
info(spacing=15, object=odbchelper) #(4)
 
#Z jednym argumentem, <tt>spacing</tt> przyjmuje wartość domyślną (10) a <tt>collapse</tt> wartość 1.
#Z dwoma argumentami, <tt>collapse</tt> przyjmuje wartość domyślną, czyli 1.
#Tutaj wywołujemy argument <tt>collapse</tt> podając jego nazwę i wartość, którą chcemy mu przypisać. <tt>spacing</tt> przyjmuje wartość domyślną, czyli w tym przypadku 10.
#Nawet wymagany argument (jak <tt>object</tt> w tym przypadku, który nie posiada wartości domyślnej) może być określony poprzez swoją nazwę i może wystapić na jakimkolwiek miejscu w wywołaniu funkcji.
 
To może być trochę niejasne dopóki nie zdasz sobie spray, że lista argumentów jest po prostu słownikiem. Gdy wywołujesz funckje "normalnie", czyli bez podawania nazw argumentów, Python dopasowuje wartości do określonych argumentów w takiej kolejności w jakiej zostały zadeklarowane. Najczęściej będziesz wykorzystywał tylko "normalne" wywołania funkcji, ale zawsze masz możliwość bardziej elastycznego podejścia do określania kolejności argumentów.
 
{{infobox|tekst=Jedyną rzeczą, którą musisz zrobić by poprawnie wywołać funkcję, jest w jakikolwiek sposób określić wartość dla każdego wymaganego argumentu. Sposób i kolejność określania argumentów zależy tylko od ciebie.}}
 
{{prognav|Python|Wbudowane typy danych|Obiekty i klasy}}
 
[[Kategoria:Python]]