Cách chuyển qua tham chiếu trong Python
Trong bài viết này, chúng ta đã khám phá cách truyền một biến bằng cách tham chiếu đến một hàm trong Python. Chúng tôi đã chứng minh ý tưởng bằng các đoạn mã Python Show
Có hai kiểu truyền tham số cho hàm trong Python
Vượt qua giá trịMột bản sao của đối số được truyền cho hàm được tạo và khi bất kỳ thao tác nào được thực hiện trên bản sao, giá trị thực không thay đổi. Nó chỉ thay đổi giá trị của bản sao được tạo bên trong hàm
đầu ra
Giải trình Tại đây, một bản sao của đối số được tạo và các thay đổi được thực hiện đối với bản sao đó để nó không ảnh hưởng đến giá trị ban đầu. Vì vậy, sau khi gọi hàm, nó sẽ in giá trị ban đầu Vượt qua tham chiếuTrong phần này, tham chiếu đến đối số gốc được truyền và khi bất kỳ thao tác nào được thực hiện trên đối số, giá trị thực cũng thay đổi. Nó thay đổi giá trị trong cả chức năng và trên toàn cầu
đầu ra
Giải trình Ví dụ dưới đây đưa ra lời giải thích chi tiết về cả hai Python thực sự sử dụng Gọi theo tham chiếu đối tượng còn được gọi là Gọi theo chuyển nhượng, điều đó có nghĩa là nó phụ thuộc vào loại đối số được truyền
Đối tượng bất biếnCác đối tượng này không thể thay đổi trạng thái hoặc giá trị của chúng. Các loại đối tượng bất biến khác nhau là
đầu ra
Giải trình Đối tượng có thể thay đổiCác đối tượng này có thể thay đổi trạng thái hoặc giá trị của chúng. Các loại đối tượng có thể thay đổi khác nhau là
Giải trình Truyền đối tượng bất biến theo tham chiếuNhư đã đề cập trước đó, bất cứ khi nào đối tượng bất biến được chuyển đến một hàm, nó sẽ được chuyển dưới dạng gọi theo giá trị. Nhưng hành vi này có thể được thay đổi bằng một số cách khác nhau như sau Trả lại và chỉ định lạiTheo cách tiếp cận này, giá trị được thay đổi trong hàm được gọi và sau đó được trả về. Giá trị trả về này được gán cho biến ban đầu
đầu ra Giải trình Sử dụng từ khóa Class và selfTheo cách này, từ khóa self được sử dụng để truy cập các biến thể hiện trong một lớp ________số 8_______đầu ra Giải trình Truyền các đối tượng không thể thay đổi bên trong Từ điển hoặc Danh sáchCác đối tượng không thể thay đổi được truyền bên trong các đối tượng có thể thay đổi như từ điển hoặc danh sách hoặc đặt làm tham số cho hàm để chúng có thể được sửa đổi trong hàm
đầu ra Hãy xem xét mã Python sau đây cho một câu hỏi thú vị 0Câu hỏiĐầu ra của đoạn mã trênVới đối số 10; Với đối số 20; Với đối số 12; Không có điều nào ở trên Ban đầu 10 được gửi làm đối số cho lớp và 10 được thêm vào và khi đối số không được gửi, 2 được khởi tạo và 10 được thêm lại Bạn có thể chuyển qua tham chiếu bằng Python không?Python truyền các đối số không phải theo tham chiếu hay theo giá trị mà theo phép gán .
Truyền giá trị qua tham chiếu trong Python là gì?Chuyển theo tham chiếu so với giá trị trong Python
. Mặt khác, khi bạn chuyển các đối số theo giá trị, các đối số sẽ trở thành bản sao độc lập của các giá trị ban đầu. When you give function parameters via reference, you're just passing references to values that already exist. When you pass arguments by value, on the other hand, the arguments become independent copies of the original values.
Python theo tham chiếu hay theo giá trị?Python sử dụng một hệ thống, được gọi là “ Gọi theo tham chiếu đối tượng ” hoặc “Gọi theo chỉ định”. Trong trường hợp bạn truyền các đối số như số nguyên, chuỗi hoặc bộ dữ liệu cho một hàm, thì việc truyền giống như gọi theo giá trị vì bạn không thể thay đổi giá trị của các đối tượng bất biến được truyền cho hàm.
Có phải Python luôn chuyển qua tham chiếu không?Hai cách tiếp cận phổ biến và dễ hiểu nhất đối với việc truyền tham số giữa các ngôn ngữ lập trình là truyền theo tham chiếu và truyền theo giá trị. Thật không may, Python là "tham chiếu theo đối tượng", mà người ta thường nói. “Tham chiếu đối tượng được truyền theo giá trị. ” |