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

醉折花枝作酒筹
Libérer: 2021-04-27 09:07:22
avant
9679 Les gens l'ont consulté

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
Copier après la connexion

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'}
Copier après la connexion

Utilisez *args

>>> def fun(name, *args):
...     print('你好:', name)
...     for i in args:
...         print("你的宠物有:", i)
... 
>>> fun("Geek", "dog", "cat")
//你好: Geek
//你的宠物有: dog
//你的宠物有: cat
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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]
Copier après la connexion

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!