Trong một số ngôn ngữ, bạn có thể chuyển một tham số theo tham chiếu hoặc giá trị bằng cách sử dụng một từ dành riêng đặc biệt như ref hoặc val . Khi bạn truyền một tham số cho một hàm Python, nó không bao giờ thay đổi giá trị của tham số khi rời khỏi hàm. Cách duy nhất để làm điều này là sử dụng từ dành riêng toàn cục (hoặc theo cách hiểu của tôi hiện tại).
Ví dụ 1:
k = 2
def foo (n):
n = n * n #clarity regarding comment below
square = n
return square
j = foo(k)
print j
print k
Sẽ hiển thị
>>4
>>2
hiển thị k là không thay đổi
Trong ví dụ này, biến n không bao giờ thay đổi
Ví dụ 2:
n = 0
def foo():
global n
n = n * n
return n
Trong ví dụ này, biến n được thay đổi
Có cách nào trong Python để gọi một hàm và cho Python biết rằng tham số là giá trị hoặc tham số tham chiếu thay vì sử dụng toàn cục không?
Thứ hai, trong các kỳ thi Cambridge cấp độ A, giờ đây họ nói rằng một hàm trả về một giá trị duy nhất trong khi một thủ tục trả về nhiều hơn một giá trị. Tôi đã được dạy một hàm có câu lệnh trả về và thủ tục thì không, trong suốt những năm 80. Tại sao điều này bây giờ không chính xác?