Trước tiên, tôi sẽ bắt đầu như mọi người khác. Tôi mới đến python. Giáo viên của tôi đã cho tôi vấn đề:Phạm vi Python có thể thay đổi được và không thay đổi
def f(a, b, c):
a = 1
c = b
c[0] = 2
a = 10
b = [11, 12, 13]
c = [13, 14, 15]
f(a, b, c)
print a, b, c
It in:
10 [2, 12, 13] [13, 14, 15]
Tôi hiểu rằng một đợt nghỉ tại 10 vì số nguyên là không thay đổi, nhưng tôi không hiểu tại sao thay đổi b và c không .
Tôi cũng chỉ ra rằng điều này không liên quan đến các loại dữ liệu có thể thay đổi/không thay đổi được. Như các câu trả lời dưới đây chỉ ra, đây là về chuyển nhượng biến. [Mô hình dữ liệu] (http://docs.python.org/reference/datamodel.html) trang thảo luận về sự khác biệt đó. – Rob
điều gì khiến bạn khó hiểu chỉ là tên biến, tôi đoán vậy. cho những cái bên ngoài hàm có tên khác nhau, ví dụ x, y, z, vì vậy bạn muốn gọi f (x, y, z) và in x, y, z. Và tôi chắc chắn nó sẽ không khó để nhìn thấy. – Danny