Using **kwargs in Python: Flexible Keyword Arguments for Dynamic Functions
Now, let's move on to keyword arbitrary arguments
or **kwargs
. The principle of how **kwargs
works is the same as for *args
, but it accepts keyword arguments instead of positional ones. **kwargs
packs information into a dictionary, so we will work with it accordingly.
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")
The correct order for the arguments is as follows:
Positional
Optional
*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)
If you want to unpack dictionaries, you need to use **
before the dictionary variable.
1. What does **kwargs in a Python function signature represent?
2. What will print_details(name="Alice", age=30) output?
3. Given the function definition below, which call is valid?
Oliko kaikki selvää?
Kiitos palautteestasi!
Osio 2. Luku 4
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme