Po prostu chcę wiedzieć, który sposób jest bardziej preferowany w python. Wyobraźmy sobie dwie funkcje:Która z tych dwóch funkcji jest bardziej "pythonic"?
1 funkcja:
def foo(key):
if bar.has_key(key):
return bar.get(key)
# do something with bar
# this will be executed if bar_key(key) is False
...
return something
2 Funkcja:
def foo(key):
if bar.has_key(key):
return bar.get(key)
else:
# do something with bar
# this will be executed if bar_key(key) is False
...
return something
Jak widać jedyną różnicą jest else
stwierdzenie. Pytanie brzmi, czy w jakiś sposób wpłynie to na wydajność. Czy są jakieś powody, aby włączyć else
w tego typu funkcje?
Zakładając, że pasek jest "dyktando", co powiesz na 'return bar.get (key, something)'? – ixe013
Raczej oparte na opiniach i nie sądzę, że jest to specyficzne dla Pythona lub "pytonowe". Z tego, co słyszałem, pierwsza opcja jest bardziej czytelna, ja też wybieram tę wersję. – BartoszKP
Nie jest; użyj 'if key in bar: return bar [key]'; nie trzeba używać 'get()' i 'has_key()'. –