Maison > développement back-end > Tutoriel Python > Comment `*args` et `kwargs` gèrent-ils les arguments variables dans les fonctions Python ?

Comment `*args` et `kwargs` gèrent-ils les arguments variables dans les fonctions Python ?

DDD
Libérer: 2024-12-23 02:21:13
original
545 Les gens l'ont consulté

How Do `*args` and `kwargs` Handle Variable Arguments in Python Functions?

Comprendre la signification de (étoile/astérisque) et * (double étoile/astérisque) dans les paramètres

Dans les définitions de fonctions Python, le et * fournissent des idiomes puissants pour gérer des nombres arbitraires de arguments.

Arguments de position : *args

    Le paramètre *args permet à une fonction d'accepter un nombre variable d'arguments de position.
  • Ces arguments sont rassemblés dans un tuple accessible dans le fonction.

Exemple :

def foo(x, y, *args):
    pass

foo(1, 2, 3)
# args = (3,)
Copier après la connexion

Arguments de mots clés : kwargs**

    Le **Le paramètre kwargs permet à une fonction d'accepter n'importe quel nombre d'arguments de mots-clés.
  • Ces arguments sont collectés dans un dictionnaire où les clés sont les noms des arguments et les valeurs sont les valeurs des arguments.

Exemple :

def bar(x, y, **kwargs):
    pass

bar(x=1, y=2, name='John', age=27)
# kwargs = {'name': 'John', 'age': 27}
Copier après la connexion

Mixage fixe et arguments variables

    Les deux
  • args et *kwargs peuvent être combinés avec des arguments fixes normaux pour offrir une flexibilité dans les définitions de fonctions.

Exemple :

def foo(kind, *args, bar=None, **kwargs):
    print(kind, args, bar, kwargs)

foo(123, 'a', 'b', apple='red')
# 123 ('a', 'b') None {'apple': 'red'}
Copier après la connexion

Utilisations supplémentaires

    • peut être utilisé pour déballer listes d'arguments lors de l'appel d'une fonction.
  • Dans Python 3,
  • et * peuvent être utilisés sur le côté gauche d'une affectation pour décompresser les itérables en variables.
  • Python 3.6 introduit une nouvelle syntaxe qui restreint les arguments de position après *.

Remarque :

    Python utilise des dictionnaires pour représenter les arguments de mots-clés, qui maintiennent l'ordre d'insertion dans Python 3.6.
  • Les dictionnaires kwargs maintiennent l'ordre d'insertion dans Python 3.7 et supérieur, même pour les non-CPython implémentations.

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 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