Bardzo proste pytanie:Preferowany styl w Pythonie (lub w jakimkolwiek innym języku): Powinien być użyty, gdy zwraca?
szczególności w Pythonie (od Pythona faktycznie ma „zaleca” wytyczne styl określony w PEP 8, ale tak naprawdę to ma zastosowanie do każdego języka), należy funkcję z klauzulą if
że zawsze zwraca mają alternatywę kod w klauzuli else
czy nie? Innymi słowy, func_style_one()
i func_style_two()
w następujący kawałek kodu są (oczywiście) dokładnie równoważne:
def func_style_one():
if some_conditional_function():
do_something()
return something()
else:
do_something_else()
return something_else()
def func_style_two():
if some_conditional_function():
do_something()
return something()
do_something_else()
return something_else()
Oczywiście, najlepszym i najbardziej czytelny styl zależy od sytuacji i opinie będą się znacznie różnić, w którym jest lepiej, ale pytam, który jest szczególnie preferowany przez rdzenną społeczność Pythona. (np. Które jest używane częściej w standardowej bibliotece, wszystkie inne rzeczy są równe?)
Mam tendencję do wybierania drugiego –
Myślę, że drugi jest bezpieczniejszy. Mniej podatne na zmianę in elif podczas refaktora i przypadkowe utworzenie ścieżki kodu bez wartości zwrotnej. –
Jeśli wszystko, co jest równoważne z innym, jest zwracane, to pierwsze. Jeśli drugi wykonuje dodatkowe obliczenia - drugi. –