thể trùng lặp:
“Least Astonishment” in Python: The Mutable Default Argumentthông số bắt buộc trong các chức năng Python và các giá trị mặc định của họ
tôi là loại bối rối về cách các tham số tùy chọn làm việc trong Python chức năng/phương pháp.
Tôi có khối mã sau:
>>> def F(a, b=[]):
... b.append(a)
... return b
...
>>> F(0)
[0]
>>> F(1)
[0, 1]
>>>
Tại sao F(1)
lợi nhuận [0, 1]
và không [1]
?
Ý tôi là, điều gì đang xảy ra bên trong?
bạn có thể thấy một cách dễ dàng chỉ bằng cách in giá trị của b trước phụ vào danh sách. :) – sam