**Kwargs
Passons maintenant aux keyword arbitrary arguments
ou **kwargs
. Le principe de fonctionnement de **kwargs
est le même que pour *args
, mais il accepte des arguments de mot-clé au lieu de positionnels. **kwargs
regroupe les informations dans un dictionnaire, nous allons donc travailler avec en conséquence.
9
1
2
3
4
5
6
7
def personal_info(name, **kwargs):
print(f"Name: {name}")
for key, value in kwargs.items():
print(f"{key.capitalize()}: {value}")
personal_info("Sarah", surname="Conor", son="John")
personal_info("Natalie", cats="3", breed="Maine Coon")
1234567def personal_info(name, **kwargs): print(f"Name: {name}") for key, value in kwargs.items(): print(f"{key.capitalize()}: {value}") personal_info("Sarah", surname="Conor", son="John") personal_info("Natalie", cats="3", breed="Maine Coon")
L'ordre correct pour les arguments est le suivant :
Positionnel
Optionnel
*args
**kwargs
9
1
2
3
4
def new_func(a, b=0, *args, **kwargs):
print(f"a = {a}, b = {b}, args = {args}, kwargs = {kwargs}")
new_func(1, 2, "Love", "Hope", name="Anna", age=20)
1234def new_func(a, b=0, *args, **kwargs): print(f"a = {a}, b = {b}, args = {args}, kwargs = {kwargs}") new_func(1, 2, "Love", "Hope", name="Anna", age=20)
Si vous souhaitez décompresser des dictionnaires, vous devez utiliser **
avant la variable de dictionnaire.
1. Que représente **kwargs dans une signature de fonction Python ?
2. Que va afficher print_details(name="Alice", age=30) ?
3. Étant donné la définition de fonction ci-dessous, quel appel est valide ?
Tout était clair ?
Merci pour vos commentaires !
Section 2. Chapitre 4
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion