Cet article vous présente l'utilisation des opérateurs Python3 * et **. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
En Python, * et ** sont grammaticalement ambigus, il existe en particulier quatre types d'utilisation.
1. Opérations arithmétiques
* représente la multiplication
** représente l'exponentiation
>>> 2 * 5 //10 >>> 2 ** 5 //32
2.
*args et **kwargs sont principalement utilisés pour les définitions de fonctions.
Vous pouvez passer un nombre variable d'arguments à une fonction. Incertain signifie : vous ne savez pas à l’avance combien de paramètres l’utilisateur de la fonction vous transmettra, utilisez donc ces deux mots-clés dans ce scénario. En fait, il n’est pas nécessaire d’écrire *args et **kwargs. *(astérisque) est obligatoire. Vous pouvez également écrire *ar et **k. Écrire *args et **kwargs n'est qu'une convention de dénomination courante.
Il existe deux façons pour les fonctions Python de transmettre des paramètres :
*args et **kwargs, les deux sont des paramètres variables en python :
Si *args et **kwargs sont utilisés en même temps, le paramètre *args doit être répertorié avant **kwargs.
>>> def fun(*args, **kwargs): ... print('args=', args) ... print('kwargs=', kwargs) ... >>> fun(1, 2, 3, 4, A='a', B='b', C='c', D='d') //args= (1, 2, 3, 4) //kwargs= {'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd'}
Utilisez *args
>>> def fun(name, *args): ... print('你好:', name) ... for i in args: ... print("你的宠物有:", i) ... >>> fun("Geek", "dog", "cat") //你好: Geek //你的宠物有: dog //你的宠物有: cat
Utilisez **kwargs
>>> def fun(**kwargs): ... for key, value in kwargs.items(): ... print("{0} 喜欢 {1}".format(key, value)) ... >>> fun(Geek="cat", cat="box") //Geek 喜欢 cat //cat 喜欢 box
3. Paramètres réels de la fonction
Si les paramètres formels de la fonction Il s'agit d'un paramètre de longueur fixe. Vous pouvez également utiliser *args et **kwargs pour appeler des fonctions, similaires au déréférencement de tuples et de dictionnaires :
>>> def fun(data1, data2, data3): ... print("data1: ", data1) ... print("data2: ", data2) ... print("data3: ", data3) ... >>> args = ("one", 2, 3) >>> fun(*args) data1: one data2: 2 data3: 3 >>> kwargs = {"data3": "one", "data2": 2, "data1": 3} >>> fun(**kwargs) data1: 3 data2: 2 data3: one
4. >Le déballage séquentiel a été écrit dans les blogs précédents. Voici un seul exemple. Il n'y a pas de déballage ** en séquence.
>>> a, b, *c = 0, 1, 2, 3 >>> a 0 >>> b 1 >>> c [2, 3]
Recommandations d'apprentissage gratuites associées :
tutoriel vidéo PythonCe 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!