Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Toán tử ** (double star) và * (star) làm gì cho tham số hàm Python?

Trong hàm Python, tham số với tiền tố sao đơn * giúp nhận số lượng đối số biến đổi từ môi trường gọi.

>>> def function(*arg):
...     for i in arg:
...         print(i)
>>> function(1, 2, 3, 4, 5)
1
2
3
4
5

Tham số với tiền tố sao kép ** dùng khi cần truyền số lượng keyword arguments biến đổi.

>>> def function(**arg):
...     for i in arg:
...         print(i, arg[i])
>>> function(a=1, b=2, c=3, d=4)
a 1
b 2
c 3
d 4

Trong Python 3, có thể định nghĩa biến với sao trong câu lệnh gán để mở rộng giải nén (extended unpacking) iterables.

>>> a, *b = [1, 2, 3, 4]
>>> a
1
>>> b
[2, 3, 4]
>>> a, *b, c = [1, 2, 3, 4]
>>> a
1
>>> b
[2, 3]
>>> c
4