1# Default parameters
2def greet(name, greeting="Hello"):
3 return f"{greeting}, {name}!"
4
5greet("Alice") # "Hello, Alice!"
6greet("Alice", "Hi") # "Hi, Alice!"
7
8# Keyword arguments (gọi theo bất kỳ thứ tự)
9def create_profile(name, age, city):
10 return {"name": name, "age": age, "city": city}
11
12profile = create_profile(age=25, city="Hanoi", name="Bob")
13
14# *args - Nhận số lượng arguments KHÔNG CỐ ĐỊNH
15# Ví dụ: sum_all(1, 2) hoặc sum_all(1, 2, 3, 4, 5) — đều được!
16def sum_all(*args):
17 return sum(args)
18
19sum_all(1, 2, 3, 4, 5) # 15
20
21# **kwargs - Nhận keyword arguments KHÔNG CỐ ĐỊNH
22# Ví dụ: build_dict(name="Alice", age=25) — gọi với bất kỳ keyword nào
23def build_dict(**kwargs):
24 return kwargs
25
26build_dict(a=1, b=2, c=3) # {'a': 1, 'b': 2, 'c': 3}
27
28# Kết hợp tất cả
29def func(a, b, *args, **kwargs):
30 print(f"a={a}, b={b}")
31 print(f"args={args}")
32 print(f"kwargs={kwargs}")
33
34func(1, 2, 3, 4, x=10, y=20)
35# a=1, b=2 | args=(3, 4) | kwargs={'x': 10, 'y': 20}