Texte intégral 2911 Mots, durée estimée de l'étude 9 Procès-verbaux
Source: Pexels
En programmation, les fonctions sont la vie!
En tant que novice en Python, qu'il s'agisse d'un programmeur débutant ou d'une personne familière avec un autre langage, vous devez savoir si le nombre de paramètres dans la définition de fonction correspond au nombre d'arguments que vous souhaitez transmettre.
Ce sont des connaissances de base, elles aident à comprendre le monde.
Cependant, l'exposition aux * args et ** kwargs dans la définition de la fonction peut également amener les novices à rencontrer des obstacles psychologiques au début.
Les deux mots args et kwargs sont souvent vus dans le code en Python, généralement précédé d'un ou deux astérisques.
Ne vous laissez pas tromper par ces déclarations. En fait, ce ne sont pas des paramètres super spéciaux, et ce n'est pas étrange, juste les noms de variables convenus par les programmeurs. Args est l'abréviation d'arguments, ce qui signifie des paramètres de position; kwargs est l'abréviation d'arguments de mot-clé, ce qui signifie des paramètres de mot-clé.
Il s'agit en fait de deux formes de paramètres variables en Python, et * args doit être placé avant ** kwargs, car les paramètres positionnels sont devant les paramètres des mots clés.
Ensuite, nous apprenons à les utiliser spécifiquement.
Paramètres de position vs paramètres de mots clés
Afin d'apprendre ce qu'est * args et ** kwargs, nous devons distinguer deux concepts.
Tout d'abord, distinguez la différence entre les paramètres positionnels et les paramètres des mots clés. Dans la fonction la plus élémentaire, créez un paramètre de jeu 1 correspondant au paramètre 1, le paramètre 2 correspond au paramètre 2, etc.
Les trois paramètres sont requis et l'un d'eux provoquera une erreur.
Étant donné une valeur par défaut pour un paramètre dans une définition de fonction, le paramètre deviendra alors un paramètre facultatif.
De plus, ces paramètres facultatifs deviendront également des mots clés qui peuvent être sélectionnés, puis les noms des paramètres d'appel de fonction peuvent être spécifiés et mappés en conséquence.
Définissez les valeurs par défaut des trois variables sur Aucun, puis voyez comment mapper sans prendre en compte l'ordre.
Opérateur Splat
Source: Pexels
Commencez par dire que j'aime aussi le nom de l'opérateur ... visualisation. * Souvent lié aux opérations de multiplication, mais en Python, c'est le double de l'opérateur splat.
L'opérateur est comme une boîte de couleur. L'auteur considère que l'opérateur d'extension - l'équivalent JavaScript de splat - ce processus peut être vu comme ouvrant un domino pour former une séquence plus grande, mais splat a besoin d'une analogie plus puissante.
L'exemple suivant est plus facile à expliquer clairement.
Dans l'exemple de code, déplacez (décompressez) le contenu de a dans la nouvelle liste b.
Comment utiliser * args et ** kwargs
Nous savons que l'opérateur splat décompresse plusieurs valeurs et qu'il existe deux types de paramètres de fonction. Si vous ne l'avez pas encore compris, vous pouvez comprendre * args comme abréviation d'arguments et ** kwargs comme abréviation d'arguments de mots clés.
Chaque paramètre est utilisé pour décompresser son type d'argument respectif, permettant des appels de fonction à l'aide de listes d'arguments de longueur de mot variable. Par exemple, créez une fonction qui représente le résultat du test d'un élève.
Oh attendez, je ne l'ai pas appelé * args? Oui, "args" est une spécification standardisée, mais ce n'est encore qu'un nom. En fait, dans * args, le seul astérisque est le véritable participant, créant une liste dont le contenu est les paramètres positionnels de l'appel de fonction (après ces arguments de définition).
Une fois que cela est clair, les ** kwargs sont faciles à comprendre. Le nom n'est pas important, ce qui compte c'est que le double astérisque crée le dictionnaire, dont le contenu est les arguments de mot-clé, qui proviennent de l'appel de fonction (après ces arguments de définition).
Pour une meilleure démonstration, nous créons une fonction qui génère une liste de personnes qui ont passé le test national d'anglais.
Source: Pexels
Enfin, offrez-vous des "avantages de connaissances" supplémentaires.
Les remarques suivantes peuvent vous aider à éviter les pièges courants et à approfondir vos connaissances.
· Utiliser * args et ** kwargs comme spécifications normalisées pour saisir les paramètres de position et les paramètres de mot-clé;
· Ne mettez pas ** kwargs avant * args, sinon une erreur se produira;
· Clairement conscient du conflit entre les paramètres de mot-clé et ** kwargs. Cette valeur transmettait à l'origine la signification de ** kwarg, mais elle est devenue le nom du paramètre de mot-clé de façon peu claire;
· L'opérateur splat peut être utilisé dans les appels de fonction.
laissez un commentaire
Partageons ensemble les produits de base de l'apprentissage et du développement de l'IA
Si réimprimé, veuillez laisser un message en arrière-plan et suivre les spécifications de réimpression