Fonctions Python
Une fonction est un segment de code organisé et réutilisable utilisé pour implémenter une fonction unique ou associée. Les fonctions
peuvent améliorer la modularité des applications et la réutilisation du code. Vous savez déjà que Python fournit de nombreuses fonctions intégrées, telles que print(). Mais vous pouvez également créer vos propres fonctions, appelées fonctions définies par l'utilisateur.
Définir une fonction
Vous pouvez définir une fonction avec la fonction que vous souhaitez, voici des règles simples :
Code de fonction A Le bloc commence par le mot-clé def, suivi du nom de l'identifiant de la fonction et des parenthèses ().
Tous les paramètres et arguments entrants doivent être placés entre parenthèses. Les paramètres peuvent être définis entre parenthèses.
La première ligne d'une fonction peut éventuellement utiliser une docstring - utilisée pour stocker les descriptions de fonctions.
Le contenu de la fonction commence par deux points et est en retrait.
return [expression] Termine la fonction, renvoyant éventuellement une valeur à l'appelant. Renvoyer sans expression équivaut à renvoyer Aucun.
Syntaxe
"Function_docstring"
function_suite
return [ expression]
Par défaut, les valeurs des paramètres et les noms des paramètres correspondent dans l'ordre défini dans la déclaration de la fonction.
Exemple
Ce qui suit est une simple fonction Python qui prend une chaîne comme paramètre d'entrée et l'imprime sur un périphérique d'affichage standard.
"Imprimer la chaîne entrante sur le périphérique d'affichage standard"
print str
return
Appel de fonction
Définir une fonction donne uniquement un nom à la fonction, spécifie les paramètres contenus dans la fonction et la structure du bloc de code.
Une fois la structure de base de cette fonction terminée, vous pouvez l'exécuter via un autre appel de fonction ou directement à partir de l'invite Python.
L'exemple suivant appelle la fonction printme() :
# -*- codage : UTF-8 -*-
# Définir la fonction
def printme(str):
"Imprimer toute chaîne entrante"
print str;
return;
# Appeler la fonction
printme( "Je veux appeler une fonction définie par l'utilisateur !");
printme("Appeler à nouveau la même fonction");
Le résultat de sortie de l'exemple ci-dessus :
Appeler à nouveau la même fonction
Passer des paramètres par valeur et passer des paramètres par référence
Tous les paramètres (variables indépendantes) sont passés par référence en Python. Si vous modifiez les paramètres dans la fonction, les paramètres d'origine seront également modifiés dans la fonction qui appelle cette fonction. Par exemple :
# -*- codage : UTF-8 -*-
# Description de la fonction inscriptible
def changeme (mylist):
"Modifier la liste entrante"
mylist.append([1,2,3,4]);
print "Valeur dans la fonction : ", mylist
return
# Appeler la fonction changeme
mylist = [10,20,30];
changeme( mylist );
print "Valeur en dehors de la fonction : ", mylist
L'objet passé dans la fonction et l'objet pour ajouter du nouveau contenu à la fin utilisent la même référence. Par conséquent, le résultat de sortie est le suivant :
Valeurs en dehors de la fonction : [10, 20, 30, [1, 2, 3, 4]]
Paramètres
Voici les types de paramètres formels qui peuvent être utilisés lorsque fonctions d'appel :
Paramètres requis
Paramètres de mots clés
Paramètres par défaut
Paramètres de longueur variable
Paramètres requis
Les paramètres requis doivent être transmis à la fonction dans le bon ordre. La quantité au moment de l'appel doit être la même que lors de la déclaration.
Lors de l'appel de la fonction printme(), vous devez passer un paramètre, sinon une erreur de syntaxe se produira :
# - *- codage : UTF-8 -*-
#Description de la fonction inscriptible
def printme(str):
"Imprimer toute chaîne entrante"
print str;
return
#Call printme function
printme();
Résultat de sortie de l'exemple ci-dessus :
Fichier "test.py", ligne 11, dans <module>
printme();
TypeError : printme() prend exactement 1 argument (0 donné)
Paramètres de mots-clés
Les paramètres de mots-clés sont étroitement liés aux appels de fonction. Les appels de fonction utilisent des paramètres de mots-clés pour déterminer les valeurs des paramètres transmises.
L'utilisation d'arguments de mots-clés permet à une fonction d'être appelée dans un ordre différent de celui lors de sa déclaration, car l'interpréteur Python est capable de faire correspondre les noms de paramètres avec les valeurs des paramètres.
Les exemples suivants utilisent des noms de paramètres lors de l'appel de la fonction printme() :
# -*- codage : UTF-8 -* -
#Description de la fonction inscriptible
def printme(str):
"Imprimer n'importe quelle chaîne entrante"
print str;
return;
#Appelez le printme function
printme(str = "Ma chaîne");
L'exemple de résultat de sortie ci-dessus :
Le L'exemple suivant peut montrer plus clairement que l'ordre des paramètres des mots-clés n'est pas important :
# -*- codage : UTF-8 -*-
#Description de la fonction inscriptible
def printinfo(name, age):
"Imprimer toute chaîne entrante"
print "Name: ", name;
print "Age " , age;
return;
#Appelez la fonction printinfo
printinfo(age=50, name="miki");
Le résultat de sortie de l'exemple ci-dessus :
Âge 50
Paramètres par défaut
Lors de l'appel d'une fonction, si la valeur du paramètre par défaut n'est pas transmise, elle est considérée comme la valeur par défaut. L'exemple suivant affichera l'âge par défaut si l'âge n'est pas transmis :
# -*- codage : UTF-8 -*-
#Description de la fonction inscriptible
def printinfo(name, age = 35):
"Imprimer toute chaîne entrante"
print "Name: ", name;
print "Age " , age;
return;
#Appeler la fonction printinfo
printinfo(age=50, name="miki");
printinfo(name="miki");
Résultat de sortie de l'exemple ci-dessus :
Âge 50
Nom : miki
Âge 35
Paramètres de longueur indéfinie
Vous aurez peut-être besoin d'une fonction capable de gérer plus de paramètres que ceux initialement déclarés. Ces paramètres sont appelés paramètres de longueur variable. Contrairement aux deux paramètres ci-dessus, ils ne seront pas nommés lors de leur déclaration. La syntaxe de base est la suivante :
"Function_docstring"
function_suite
return [expression]
Les noms de variables avec un astérisque (*) stockeront tous les paramètres de variables sans nom. Vous pouvez également choisir de ne pas transmettre davantage de paramètres. L'exemple suivant :
# -*- codage : UTF-8 -*-
# Description de la fonction inscriptible
def printinfo(arg1, *vartuple):
"Imprimer tous les arguments passés"
print "Sortie : "
print arg1
for var in vartuple:
print var
return
# Appelez la fonction printinfo
printinfo( 10 );
printinfo( 70, 60, 50 );
Le résultat de sortie de l'exemple ci-dessus :
10
Sortie :
70
60
50
Fonction anonyme
python utilise lambda pour créer des fonctions anonymes.
lambda n'est qu'une expression, et la fonction body est beaucoup plus simple que def.
Le corps de lambda est une expression, pas un bloc de code. Seule une logique limitée peut être encapsulée dans des expressions lambda.
La fonction lambda a son propre espace de noms et ne peut pas accéder aux paramètres en dehors de sa propre liste de paramètres ou dans l'espace de noms global.
Bien que la fonction lambda semble pouvoir écrire une seule ligne, elle n'est pas équivalente à la fonction inline du C ou du C++. Le but de cette dernière est d'appeler une petite fonction. sans occuper la mémoire de la pile et augmenter ainsi l'efficacité du temps d'exécution.
Syntaxe
La syntaxe de la fonction lambda ne contient qu'une seule instruction, comme suit :
L'exemple suivant :
# -*- codage : UTF- 8 -*-
# Description de la fonction inscriptible
sum = lambda arg1, arg2 : arg1 + arg2;
# Appeler la fonction somme
print "La valeur ajoutée est : " , sum ( 10, 20 )
print "La valeur ajoutée est : ", sum( 20, 20 )
L'exemple de résultat de sortie ci-dessus :
La valeur après ajout est : 40
instruction return
instruction return [expression] quitte la fonction et renvoie éventuellement une expression à l'appelant. Une instruction return sans valeurs de paramètres renvoie None. Les exemples précédents n'ont pas montré comment renvoyer une valeur. L'exemple suivant vous expliquera comment procéder :
# -*- codage : UTF. -8 -*-
# Description de la fonction inscriptible
def sum(arg1, arg2):
#Renvoie la somme de 2 paramètres "
total = arg1 + arg2
" print dans la fonction : ", total
return total;
# Call sum function
total = sum(10, 20);
print "En dehors de la fonction : ", total
Résultats de sortie de l'exemple ci-dessus :
En dehors de la fonction : 30
Portée variable
d'un programme Toutes les variables ne sont pas accessibles à tous les emplacements. Les autorisations d'accès dépendent de l'endroit où la variable est attribuée.