Maison  >  Article  >  développement back-end  >  Quelle est l'utilisation des opérateurs * et ** en Python3

Quelle est l'utilisation des opérateurs * et ** en Python3

醉折花枝作酒筹
醉折花枝作酒筹avant
2021-04-27 09:05:109714parcourir

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.

Quelle est l'utilisation des opérateurs * et ** en Python3

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 :

  • argument de position (argument de position)
  • argument de mot-clé (argument de mot-clé)
La différence entre

*args et **kwargs, les deux sont des paramètres variables en python :

  • *args représente tout paramètre multiple sans nom, qui est essentiellement un tuple
  • ** kwargs représente des paramètres de mots-clés, qui sont essentiellement un dict

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 Python

 !

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer