web-dev-qa-db-fra.com

Quel est le meilleur moyen de quitter une fonction (qui n'a pas de valeur de retour) dans python avant la fin de la fonction (par exemple, une vérification échoue)?

Supposons une itération dans laquelle nous appelons une fonction sans valeur de retour. La façon dont je pense que mon programme devrait se comporter est expliquée dans ce pseudocode:

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...

Si j'implémente cela en python, cela me dérange que la fonction retourne un None. Existe-t-il un meilleur moyen de "quitter une fonction qui n'a pas de valeur de retour si une vérification échoue dans le corps de la fonction"?

123
Aufwind

Vous pouvez simplement utiliser

return

qui fait exactement la même chose que

return None

Votre fonction renverra également None si l'exécution atteint la fin du corps de la fonction sans frapper une instruction return. Ne rien renvoyer revient à retourner None en Python.

226
Sven Marnach

Je voudrais suggerer:

def foo(element):
    do something
    if not check: return
    do more (because check was succesful)
    do much much more...
15
Hyperboreus

vous pouvez utiliser l'instruction return sans paramètre pour quitter une fonction

def foo(element):
    do something
    if check is true:
        do more (because check was succesful)
    else:
        return
    do much much more...

ou soulever une exception si vous voulez être informé du problème

def foo(element):
    do something
    if check is true:
        do more (because check was succesful)
    else:
        raise Exception("cause of the problem")
    do much much more...
10
Cédric Julien