Maison > Article > développement back-end > Contenu de base de Python : fonctions
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. Les fonctions créées par vous-même sont appelées fonctions définies par l'utilisateur. Spécifications de définition de fonction : 1. Le bloc de code de fonction commence par le mot-clé def, suivi du nom de l'identifiant de fonction et de parenthèses ().
2. Tous les paramètres entrants et variables indépendantes doivent être placés entre parenthèses, et les espaces entre parenthèses peuvent être utilisés pour définir les paramètres.
3. La première ligne de l'instruction de fonction peut éventuellement utiliser une chaîne de documentation - utilisée pour stocker les descriptions de fonctions.
4. Le contenu de la fonction commence par deux points et est en retrait.
5.return [expression] termine la fonction et renvoie éventuellement une valeur à l'appelant. Renvoyer sans expression équivaut à renvoyer Aucun.
Syntaxe de définition de fonction : def nom de fonction (paramètre formel) : corps de fonction 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 : #Vous ne pouvez pas définir de paramètres formels>>> def
show():... print('show fun')...>>> Fonction : >>> def
area(height,width):... a = height*width... return a...>>> une fonction utilise directement le nom de la fonction (). Si le nom de la fonction est utilisé directement, l'adresse de contenu physique de la fonction est renvoyée lorsque () est ajouté, il représente les paramètres formels et les paramètres réels de la fonction exécutée>> ; def
area(height,width):... a = height*width... return a...>>> area(4,5)20 Dans cet exemple, la hauteur et la largeur sont formelles paramètres, qui sont utilisés pour définir la structure et la logique de la fonction. Les 4 et 5 suivants sont les paramètres réels, qui sont les paramètres réellement transmis par l'utilisateur lors de l'appel de la fonction. Le nombre de paramètres réels doit être égal au formel. paramètres. Pour rester cohérent, lors de l'appel, les valeurs spécifiques des paramètres formels correspondent une à une selon l'ordre dans lequel les paramètres réels sont transmis. Par exemple, 4 correspond à la hauteur et 5 correspond à la largeur. Paramètres de mot-clé (paramètres spécifiés) L'utilisation de paramètres de mot-clé permet de modifier les paramètres lorsque la fonction est appelée. L'ordre est incompatible avec la déclaration. L'utilisation spécifique est la suivante>>>
def zone (hauteur, largeur). :... a = height*width... return a...>>>
area(width = 5,height = 4)# Il suffit de spécifier les valeurs du formel spécifique paramètres lors de l'appel de la fonction. Paramètres par défaut Lors de l'appel d'une fonction, si aucun paramètre n'est passé, les paramètres par défaut seront utilisés. Les paramètres par défaut doivent être définis à la fin de tous les paramètres formels>>>
def stu(name,age,grade=3):... Print('name is %s,age is %s,grade is %s' %
(name,age,grade))...>>>
stu('ian',10) #Aucun paramètre de note n'est transmis ici, la note est utilisée par défaut =
3name est
ian, l'âge est 10, la note est 3>>>
stu('isha',9,4)le nom est
isha, l'âge est 9, la note est 4 dynamique paramètres #Paramètre dynamique 01, ajoute tous les paramètres réels entrants à une primitive def main2(*arg): print(arg,type(arg))main2(1,2,3,4) #Paramètre dynamique 02, transmettra tous les les paramètres réels saisis sont ajoutés à un dictionnaire def main3(**kwargs): print(kwargs,type(kwargs))main3(k1=12,k2='ian') #Paramètre dynamique 03, les deux éléments ci-dessus sont combinés def
main4(*args,**kwargs): print(args,type(args)) print(kwargs,type(kwargs))main4(1,2,k1=12,k2='ian') #Le formulaire ci-dessus L'ordre des paramètres et des paramètres réels ici ne peut pas être inversé, sinon une erreur sera signalée #Paramètre dynamique 4, si le paramètre réel est une variable, comment le spécifier dans le paramètre dynamique --->Avec *def
main4(*args,**kwargs) : print(args,type(args)) print(kwargs,type(kwargs))m = [1,2]n =
{'k1':12,'k2' :'ian'}main4(*m ,**n) Résumé : les fonctions Python ont une forme de paramètre très flexible, qui peut non seulement implémenter des appels simples, mais également transmettre des paramètres très complexes. Les paramètres par défaut doivent utiliser des objets immuables. S'il s'agit d'objets mutables, il y aura des erreurs logiques de fonctionnement ! Faites attention à la syntaxe de définition des paramètres variables et des paramètres de mot-clé : *args est un paramètre variable, args reçoit un tuple ; **kwargs est un paramètre de mot-clé et kwargs reçoit un dict. L'utilisation de *args et **kwargs est la convention Python. Bien sûr, d'autres noms de paramètres peuvent également être utilisés, mais il est préférable d'utiliser la convention. La fonction anonyme python utilise lambda
pour créer des fonctions anonymes. Le soi-disant anonyme signifie que vous n'utilisez plus la forme standard de l'instruction def
pour définir une fonction. 1.lambda n'est qu'une expression et le corps de la fonction est beaucoup plus simple que def.
2. 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.
3.lambda
La fonction 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.
4. Bien que la fonction lambda semble ne pouvoir écrire qu'une seule ligne, elle n'est pas équivalente à la fonction inline du C ou du C++. Le but de cette dernière est d'augmenter l'efficacité de fonctionnement en n'occupant pas la mémoire de la pile lors de l'appel. petites fonctions.
Syntaxe de fonction anonyme La syntaxe de fonction lambda ne contient qu'une seule instruction, comme suit : lambda [arg1
[,arg2,.....argn]]:expression Exemple :>>>
su = lambda a,b,c : a + b + c>>> 3) 6 return instruction return est utilisée pour quitter la fonction. L'utilisation de return [expression] renverra une expression lors de la sortie de la fonction. Return sans paramètres renvoie none >>> def
area(height,width) :. .. a = hauteur*largeur... return a...>>> ar =
zone(4,5)>>>
print('la zone est', ar) la zone est de 20 Variables globales et variables locales Lorsque vous déclarez des variables dans une définition de fonction, elles n'ont aucune relation avec d'autres variables du même nom en dehors de la fonction, c'est-à-dire que le nom de la variable est
local à la fonction. C'est ce qu'on appelle la portée de la variable. La portée de toutes les variables est le bloc dans lequel elles sont définies, à partir du point où leurs noms sont définis. Variables locales : def func(x) : print ('x est',x) x=2 print ('X local modifié en',x) x=50func(x)print ('x est toujours',x) Le résultat is : x vaut 50Changement de x local en 2x vaut toujours 50 Utilisation de l'instruction globale Si vous souhaitez attribuer une valeur à une variable définie en dehors de la fonction, alors vous devez dire à Python que le nom de la variable n'est pas local, mais
global . Nous utilisons l'instruction globale pour accomplir cette fonction. Sans l'instruction globale, il est impossible d'attribuer une valeur à une variable définie en dehors d'une fonction. def func() : global x print ('x est',x) x=2 print ('Changement de x local en',x) x=50func()print ('x est toujours',x) Le résultat est : x est 50Changement de x local en 2x est toujours 2 #l'instruction globale est utilisée pour déclarer que x est global, par conséquent, lorsque nous attribuons une valeur à x dans la fonction, la valeur de x en dehors de la fonction changera également directement
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!