Python cho phép gán giá trị mặc định cho tham số hàm bằng toán tử =. Nếu không truyền đối số đó khi gọi, giá trị mặc định sẽ được dùng.
Cú pháp
def defaultArg(name, foo='Come here!'):
print(name, foo)
defaultArg('Joe') # Joe Come here!
defaultArg('Joe', 'Hi!') # Joe Hi!
Đầu ra
Joe Come here! Joe Hi!
Đặc điểm quan trọng
- Giá trị mặc định được đánh giá một lần khi định nghĩa hàm, không phải mỗi lần gọi.
- Cẩn thận với mutable default arguments (list, dict) - xem bài 1003108190.
- Default arguments phải đứng sau required arguments.
Ví dụ nhiều default args
def greet(name, msg="Hello", punct="!"):
print(f"{msg}, {name}{punct}")
greet("Alice") # Hello, Alice!
greet("Bob", "Hi") # Hi, Bob!
greet("Carol", punct=".") # Hello, Carol. (keyword arg)
Best practice: Dùng None cho mutable defaults, khởi tạo bên trong hàm.