Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności:
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: Banalne pytanie  (Przeczytany 1636 razy)
« : 18:13 19/04/18 »
robin Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 18


Kod
if attr in getattr(obj, '__dict__', {}):

Kod
def __init__(self, value = []):

Dlaczego czasami w Pythonie  wstawiamy takie puste obiekty ? 
Zapisane
« Odpowiedz #1 : 22:29 19/04/18 »
sig Online
Professional Python User

Zobacz profil
***

Reputacja: 84
Wiadomości: 388



Kod
def __init__(self, value = []):

Dlaczego czasami w Pythonie  wstawiamy takie puste obiekty ? 
W tym przypadku chodzi o tzw argument domyślny, czyli jeśli wywołasz to bez parametrów wyśle pustą listę czyli przypuszczam że wartości zostaną dodane potem.
Zapisane
« Odpowiedz #2 : 22:32 19/04/18 »
firemark Offline
Advanced Python User

Zobacz profil
**

Reputacja: 16
Wiadomości: 193


w pierwszym przypadku getattr (odrazu metody przeróżne metody get np. w słowniku) stosuje się by nie wywołało wyjątku tylko zrzuciło coś w miarę "pustego" albo domyślną wartość.

Co do drugiego przypadku - to jest generalnie BŁĄD - powinno się stosować None.  Więcej info tutaj http://docs.python-guide.org/en/latest/writing/gotchas/#mutable-default-arguments
Zapisane
« Odpowiedz #3 : 00:12 20/04/18 »
robin Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 18


Thx
Zapisane
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2018 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot