Maison > développement back-end > Tutoriel Python > Comment `*args` et `kwargs` améliorent-ils la flexibilité des arguments de fonction Python ?

Comment `*args` et `kwargs` améliorent-ils la flexibilité des arguments de fonction Python ?

Linda Hamilton
Libérer: 2024-12-19 15:10:11
original
932 Les gens l'ont consulté

How Do `*args` and `kwargs` Enhance Flexibility in Python Function Arguments?

Démêler l'utilisation de args et *kwargs en Python

Malgré la compréhension des définitions de base de args et *kwargs , vous n'êtes pas sûr de leurs applications pratiques. Approfondissons ces concepts et démontrons comment ils peuvent simplifier vos tâches de codage.

L'importance des *args

*args signifie arguments de longueur variable. Il permet de passer un nombre variable d'arguments à une fonction sous forme de liste. Cela devient utile lorsque vous ne savez pas à l'avance combien d'arguments seront transmis.

Considérez l'exemple suivant :

def print_args(*args):
    for count, thing in enumerate(args):
        print("{0}. {1}".format(count, thing))
Copier après la connexion

Maintenant, lorsque vous appelez cette fonction, vous pouvez transmettre n'importe quel nombre d'arguments :

print_args("apple", "banana", "cabbage")  # Prints each argument on a new line
Copier après la connexion

Utiliser **kwargs pour la flexibilité

**kwargs signifie arguments de mots clés. Il vous permet de transmettre un dictionnaire à une fonction, où les clés deviennent des noms d'arguments et les valeurs deviennent des valeurs d'argument. Ceci est particulièrement utile lorsque vous devez gérer des arguments nommés que vous ne connaissez peut-être pas à l'avance.

Par exemple, modifions notre exemple :

def table_kwargs(**kwargs):
    for name, value in kwargs.items():
        print("{0} = {1}".format(name, value))
Copier après la connexion

Maintenant, lorsque nous appelons cette fonction, nous pouvons spécifier des arguments en fonction de leurs noms :

table_kwargs(apple="fruit", cabbage="vegetable")  # Prints "apple = fruit", "cabbage = vegetable"
Copier après la connexion

Combinant args et *kwargs

Vous pouvez également combiner args et kwargs dans les définitions de fonctions pour gérer un mélange d'arguments positionnels et nommés. Cependant, il est important de se rappeler que args doit précéder kwargs dans la signature de la fonction.

Par exemple :

def table_args_kwargs(title, **kwargs):
    print(title)
    for name, value in kwargs.items():
        print("{0} = {1}".format(name, value))
Copier après la connexion

Vous pouvez maintenant appeler cette fonction avec les deux positions. et arguments nommés :

table_args_kwargs("Table of Stuff", apple="fruit", cabbage="vegetable")
Copier après la connexion

Utiliser args et *kwargs dans les appels de fonction

En plus d'utiliser args et *kwargs dans les définitions de fonctions, vous pouvez également les utiliser lors de l'appel de fonctions. Cela vous permet de décompresser des séquences (listes ou tuples) en tant qu'arguments ou de transmettre des dictionnaires en tant qu'arguments nommés.

Par exemple :

def print_three_things(a, b, c):
    print("a = {0}, b = {1}, c = {2}".format(a, b, c))

mylist = ["aardvark", "baboon", "cat"]
print_three_things(*mylist)  # Unpacks the list into individual arguments
Copier après la connexion

Conclusion

args et *kwargs fournissent des outils puissants pour gérer des arguments flexibles dans les fonctions Python. Ils vous permettent d'accepter un nombre variable d'arguments, de gérer les arguments nommés et de combiner les deux types en une seule fonction. Comprendre ces concepts est crucial pour écrire du code Python polyvalent et adaptable.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal