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
Linda Hamiltonoriginal
2024-12-19 15:10:111007parcourir

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

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

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

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"

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

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

table_args_kwargs("Table of Stuff", apple="fruit", cabbage="vegetable")

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

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!

Déclaration:
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