Computer >> Máy Tính >  >> Lập trình >> Python

Chuyển theo tham chiếu so với giá trị trong Python

Tất cả các tham số (đối số) trong ngôn ngữ Python được truyền bằng tham chiếu. Điều đó có nghĩa là nếu bạn thay đổi thông số đề cập đến trong một hàm, thì thay đổi đó cũng phản ánh lại trong hàm đang gọi.

Ví dụ

 #! / usr / bin / python # Định nghĩa hàm là heredef changeme (mylist):"Thao tác này sẽ thay đổi danh sách được chuyển thành hàm này" mylist.append ([1,2,3,4]); print "Các giá trị bên trong hàm:", mylistreturn # Bây giờ bạn có thể gọi hàm changeme functionmylist =[10,20,30]; changeme (mylist); print" Các giá trị bên ngoài hàm:", mylist 

Đầu ra

Ở đây, chúng tôi đang duy trì tham chiếu của đối tượng đã truyền và các giá trị nối thêm trong cùng một đối tượng. Vì vậy, điều này sẽ tạo ra kết quả sau -

 Các giá trị bên trong hàm:[10, 20, 30, [1, 2, 3, 4]] Các giá trị bên ngoài hàm:[10, 20, 30, [1, 2, 3, 4]] 

Có một ví dụ nữa trong đó đối số đang được truyền bằng tham chiếu và tham chiếu đang được ghi đè bên trong hàm được gọi.

Ví dụ

 #! / usr / bin / python # Định nghĩa hàm là heredef changeme (mylist):"Thao tác này thay đổi danh sách đã truyền thành hàm này" mylist =[1,2,3,4]; # Điều này sẽ chỉ định tham chiếu mới trong mylistprint "Các giá trị bên trong hàm:", mylistreturn # Bây giờ bạn có thể gọi hàm changeme functionmylist =[10,20,30]; changeme (mylist); print "Các giá trị bên ngoài hàm:", mylist  

Đầu ra

Tham số mylist là cục bộ của hàm changeme. Thay đổi danh sách của tôi trong hàm không ảnh hưởng đến danh sách của tôi. Hàm không thực hiện được gì và cuối cùng điều này sẽ tạo ra kết quả sau -

 Giá trị bên trong hàm:[1, 2, 3, 4] Giá trị bên ngoài hàm:[10, 20, 30]