Python Learning Series · @onlysamarrr · Day 21 / 30
Day 21 covers function arguments: default values, *args for extra positional arguments (collected as a tuple) and **kwargs for extra keyword arguments (collected as a dict). Never use a mutable default like bag=[], because it is shared across calls.
Phase: Intermediate · Reels: 101/450 – 105/450
Day 21 covers function arguments: default values, *args for extra positional arguments (collected as a tuple) and **kwargs for extra keyword arguments (collected as a dict). Never use a mutable default like bag=[], because it is shared across calls.
def greet(name, msg="Hello"):
return f"{msg}, {name}"
def total(*args, **kwargs):
print(args, kwargs)
return sum(args)
print(greet("Arhan"))
print(greet("Arhan", "Hi"))
print(total(1, 2, 3, tax=5))
def add(item, bag=None):
if bag is None:
bag = []
bag.append(item)
return bag
print(add("a"))
print(add("b"))
Hello, Arhan
Hi, Arhan
(1, 2, 3) {'tax': 5}
6
['a']
['b']
Logging, APIs and flexible utilities use *args and **kwargs to accept any number of arguments.
Select (tick) an option, then tap Check answer to see instantly whether your answer is right or wrong, with an explanation. You can change your answer and check again.
Q1. What does *args collect?
Q2. What does **kwargs collect?
Q3. Why is def f(bag=[]) a trap?
| 101/450 | Concept | Default arguments |
| 102/450 | Live demo | *args aur **kwargs demo |
| 103/450 | Common mistake | Mutable default ki galti |
| 104/450 | Quiz | Quiz: sum of any numbers |
| 105/450 | Interview / real life | Interview: *args kya hai |