Kết hợp tham số trong Python
Có thể truyền đồng thời tham số có tên và tham số theo vị trí vào cùng một hàm.
Việc này được thực hiện bằng ký hiệu *,
ký hiệu này cho biết các tham số được chỉ định
ở bên phải của nó nên được coi là tham số có tên,
nếu không cần sử dụng giá trị mặc định của chúng.
Hãy tạo một hàm sẽ
in tất cả các tham số ra console. Biến
data sẽ đại diện cho một
tham số theo vị trí thông thường. Sau đó, sau ký hiệu
*, hai biến start
và end được đặt với các giá trị
mặc định.
Tuy nhiên, khi gọi hàm, chúng ta sẽ biến các
biến này thành tham số có tên:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Kết quả thực thi mã:
1 2 3
Nếu loại bỏ giá trị mặc định của biến
start và đồng thời không truyền nó như một
tham số có tên, thì sẽ xuất hiện lỗi.
Điều này xảy ra vì ký hiệu *
đã xác định start là một biến
có tên:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # sẽ báo lỗi
Kết quả thực thi mã sau sẽ là gì:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Kết quả thực thi mã sau sẽ là gì:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Kết quả thực thi mã sau sẽ là gì:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))