Załóżmy iterację, w której wywołujemy funkcję bez zwracanej wartości. Sposób, w jaki moim zdaniem powinien zachowywać się mój program, jest wyjaśniony w tym pseudokodzie:
for element in some_list:
foo(element)
def foo(element):
do something
if check is true:
do more (because check was succesful)
else:
return None
do much much more...
Jeśli zaimplementuję to w Pythonie, przeszkadza mi, że funkcja zwraca plik None
. Czy istnieje lepszy sposób na „wyjście z funkcji, która nie zwraca wartości, jeśli sprawdzenie nie powiedzie się w treści funkcji”?
raise
wyjątek (lub, bardzo rzadko, sprawić, że funkcja zwróci True / False)Odpowiedzi:
Możesz po prostu użyć
który robi dokładnie to samo, co
Twoja funkcja zwróci również wartość,
None
jeśli wykonanie dotrze do końca jej treści bez uderzenia wreturn
instrukcję. Zwracanie niczego jest tym samym, co zwracanieNone
w Pythonie.źródło
return
nie działa, jeślia = method()
ustawię metodę, której używamreturn
, nadal będzie wykonywał kod za plikiem. exit powinno wyglądać jak php exit (), natychmiast przerywa działanie programu.import sys
najpierw, a następnie,sys.exit()
jeśli chcesz zakończyć, ale zgłoś sukces lubsys.exit("some error message to print to stderr")
.Sugerowałbym:
źródło
możesz użyć
return
instrukcji bez żadnego parametru, aby wyjść z funkcjilub zgłoś wyjątek, jeśli chcesz być poinformowany o problemie
źródło