
Return, Return None et No Return en Python : quelle est la différence ?
Considérez les fonctions suivantes :
1 2 3 4 5 6 7 8 9 10 | def my_func1():
print ( "Hello World" )
return None
def my_func2():
print ( "Hello World" )
return
def my_func3():
print ( "Hello World" )
|
Copier après la connexion
Bien qu'ils semblent tous renvoyer Aucun, il existe des différences subtiles dans leur comportement.
Différences de comportement
Lorsque ces fonctions sont exécutées :
-
my_func1() : Imprime "Bonjour World" et renvoie explicitement Aucun.
-
my_func2() : Imprime « Hello World » et renvoie implicitement Aucun (le comportement par défaut des fonctions).
-
my_func3() : Imprime "Hello World" et ne renvoie rien (pas même Aucun).
Considérations d'utilisation
Retour Aucun
- Utiliser pour les fonctions destinées à renvoie une valeur, même si elle est Aucune.
- La valeur renvoyée peut être utilisée ou ignorée ultérieurement dans le code.
- Évitez de renvoyer Aucun s'il n'y a pas de valeurs de retour alternatives.
Retour
- Utiliser pour quitter explicitement une fonction , similaire aux instructions break dans les boucles.
- La valeur de retour n'est pas pertinente et ne doit pas être utilisé.
- Utile lorsque vous souhaitez uniquement quitter la fonction sans renvoyer de valeur spécifique.
Aucun retour
- Utiliser pour les fonctions qui n'ont pas besoin de renvoyer de valeur ou qui indiquent simplement une exécution réussie.
- Comme le retour, la valeur renvoyée n'est pas destinée à être utilisée ou capturé.
- Similaire aux fonctions void dans d'autres langages comme C et Java.
Exemples
Obtenir le nom d'une mère ( Retour Aucun) :
1 2 3 4 5 | def get_mother(person):
if is_human(person):
return person.mother
else :
return None
|
Copier après la connexion
Trouver un prisonnier avec un couteau (Retour) :
1 2 3 4 5 6 | def find_prisoner_with_knife(prisoners):
for prisoner in prisoners:
if "knife" in prisoner.items:
prisoner.move_to_inquisition()
return # No need to check the other prisoners.
raise_alert()
|
Copier après la connexion
Définir le nom d'une mère (Pas de retour) :
1 2 3 | def set_mother(person, mother):
if is_human(person):
person.mother = mother
|
Copier après la connexion
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!