Hướng dẫn pass by reference python - vượt qua tham chiếu python
Các nhà phát triển nhảy vào lập trình Python từ các ngôn ngữ khác như C ++ và Java thường bị nhầm lẫn bởi quá trình truyền các đối số trong Python. Mô hình dữ liệu tập trung vào đối tượng và cách xử lý phân công của nó là nguyên nhân đằng sau sự nhầm lẫn ở cấp độ cơ bản. & NBSP; Show
Nội phân chính
Nội phân chính
Trong bài viết, chúng tôi sẽ thảo luận về khái niệm về cách truyền giá trị bằng cách tham khảo trong Python và cố gắng hiểu các ví dụ ngang qua trong Python.how to pass a value by reference in Python and try to understand pass-by-reference examples in Python. Vượt qua giá trị và vượt qua tham chiếu trong PythonBạn có thể muốn đấm một cái gì đó sau khi đọc trước, vì vậy hãy tự chuẩn bị. Mô hình truyền đối số của Python, không phải là người vượt qua giá trị, cũng không vượt qua bởi tham chiếu, nhưng đó là lần vượt qua tham chiếu đối tượng. & NBSP;neither “Pass by Value” nor “Pass by Reference” but it is “Pass by Object Reference”. Các mô hình của Pass Pass By Value, Pass Pass By tham chiếu và Pass Pass By By Accident Tham khảo đối tượng có thể được hiểu bằng cách khám phá các hàm ví dụ dưới đây. Nhìn vào hai chức năng được xác định dưới đây: Python3
a = ["X", "Y"]0 a = ["X", "Y"]1 list a = ["X", "Y"]3 a = ["X", "Y"]4 a = ["X", "Y"]5 a = ["X", "Y"]6 a = ["X", "Y"]7 a = ["X", "Y"]6 a = ["X", "Y"]9 0a = ["X", "Y"]1 2 list
5list ____10a = ["X", "Y"]1 list 0 1 2a = ["X", "Y"]1 2 list
5list ____10 1 2 1 4Output: ['A', 'B', 'C'] ['E', 'D'] 6a = ["X", "Y"]3 a = ["X", "Y"]4 9 0Biến không phải là đối tượngBây giờ, hãy để khám phá mã trên, & nbsp; a = ["X", "Y"] Những gì vượt qua bằng cách tham khảo trong Python?Ở đây, một người khác là một biến chỉ vào một danh sách chứa phần tử của X X và và Y. Nhưng bản thân một người khác không phải là danh sách. Hãy xem xét một người khác là một cái xô chứa đối tượng là X X và và Y. & NBSP; Truyền bằng tham chiếu có nghĩa là bạn phải chuyển hàm (tham chiếu) đến một biến đề cập rằng biến đã tồn tại trong bộ nhớ. & NBSP; Ở đây, biến (nhóm) được truyền trực tiếp vào hàm. Biến hoạt động như một gói đi kèm với nội dung của nó (các đối tượng). Trong hình ảnh mã trên, cả hai danh sách của người dùng và và My_list là cùng một biến chứa và do đó đề cập đến cùng một đối tượng chính xác trong bộ nhớ. Bất kỳ hoạt động nào được thực hiện bởi hàm trên biến hoặc đối tượng sẽ được người gọi chức năng phản ánh trực tiếp. Chẳng hạn, hàm có thể thay đổi hoàn toàn nội dung biến và trỏ nó vào một đối tượng hoàn toàn khác: & nbsp; Ngoài ra, hàm có thể gán lại nội dung của biến có cùng hiệu ứng như dưới đây: & nbsp; Truyền qua giá trị trong Python là gì?Để tóm tắt, trong tham chiếu qua chức năng và người gọi sử dụng cùng một biến và đối tượng. Trong phương pháp này, chúng tôi vượt qua một bản sao của các biến thực tế trong chức năng như một tham số. Do đó, bất kỳ sửa đổi nào trên các tham số bên trong hàm sẽ không phản ánh trong biến thực tế. Điều tương tự cũng đúng với bất kỳ hoạt động nào được thực hiện bởi hàm trên biến hoặc đối tượng & nbsp; Để tóm tắt các bản sao của các biến và các đối tượng trong bối cảnh người gọi của hàm được phân lập hoàn toàn. Mục lục
Thông qua tham chiếu là gì?Vượt qua bằng tham chiếu vs giá trị trong Python Trong tham chiếu vượt qua, biến được chuyển trực tiếp vào hàm trong khi biến hoạt động như một gói đi kèm với các đối tượng. Bởi vì bạn đã cung cấp chức năng một tham chiếu đến một biến hiện có, bất kỳ hoạt động nào bạn thực thi trên đó sẽ có ảnh hưởng trực tiếp đến biến mà nó đề cập đến. the variable it refers to. Vượt qua bằng tham chiếu vs giá trị trong PythonKhi bạn cung cấp các tham số chức năng thông qua tham chiếu, bạn chỉ chuyển các tham chiếu đến các giá trị đã tồn tại. Mặt khác, khi bạn chuyển các đối số theo giá trị, các đối số trở thành bản sao độc lập của các giá trị ban đầu. Vượt qua giá trịBất kỳ hoạt động nào khác được thực hiện sẽ không có bất kỳ ảnh hưởng nào đến giá trị ban đầu khi đối số được truyền cho hàm được sao chép. Nó chỉ thay đổi giá trị của bản sao được tạo trong hàm. Input:
Ở đây, một bản sao của đối số được tạo và các thay đổi được thực hiện cho bản sao đó sao cho giá trị ban đầu không bị ảnh hưởng. Kết quả là, giá trị ban đầu được in sau cuộc gọi hàm. Output:
Trong đó, chúng tôi đã gán biến giá trị '100' và thay đổi nó thành '200', nhưng sự thay đổi không được nhìn thấy bên ngoài hàm, tức là int vẫn là '100'. Do đó đã được chứng minh, nó được chuyển qua phương thức giá trị. Vượt qua tham chiếuPhương pháp này truyền một tham chiếu đến các đối số gốc và bất kỳ hoạt động nào được thực hiện trên tham số đều ảnh hưởng đến giá trị thực. Nó làm thay đổi giá trị trong cả chức năng và toàn cầu. Input:
Khi một danh sách được sử dụng, tài liệu tham khảo của nó được cung cấp vào hàm và bất kỳ sửa đổi nào cho danh sách đều có hiệu lực ngay cả sau khi phương thức được gọi. Output:
Trong ví dụ trên, function () trả về một chuỗi và cũng sửa đổi giá trị của & nbsp; int. Điều này cho thấy Python hỗ trợ phương thức tham chiếu vượt qua. Mô hình đối tượng PythonTốt nhất là trước tiên chúng ta hiểu các đối tượng Python là gì và làm thế nào để mô tả chúng. Trong Python, mọi thứ đều là một đối tượng. Danh tính, kiểu dữ liệu và nội dung của đối tượng đặc trưng cho mọi đối tượng.
Như chúng ta có thể thấy ở trên, & nbsp; id & nbsp; là chức năng tích hợp mà bạn sử dụng để truy vấn danh tính của một đối tượng và & nbsp; type & nbsp; là chức năng tích hợp mà bạn sử dụng để truy vấn loại đối tượng.the identity of an object, and type is the built-in function you use to query the type of an object. Bớt tư tưởngPython hoạt động khác với các ngôn ngữ lập trình khác khi nói đến việc di chuyển các đối số. Vì bạn đã cung cấp cho chức năng một tham chiếu đến một biến hiện có, tất cả các hoạt động được thực hiện trên tài liệu tham khảo này sẽ ảnh hưởng trực tiếp đến biến mà nó đề cập đến. Người ta có thể tìm hiểu về các khái niệm liên quan đến Python khác ở đây. Truyền qua giá trị là gì và vượt qua tham chiếu trong Python?Truyền qua tham chiếu có nghĩa là bạn phải chuyển hàm (tham chiếu) đến một biến đề cập rằng biến đã tồn tại trong bộ nhớ. Ở đây, biến (nhóm) được truyền trực tiếp vào hàm. Biến hoạt động như một gói đi kèm với nội dung của nó (các đối tượng).. Here, the variable( the bucket) is passed into the function directly. The variable acts as a Package that comes with its contents(the objects). Truyền qua giá trị là gì và vượt qua tham chiếu?Pass by giá trị: Các giá trị tham số phương thức được sao chép vào một biến khác và sau đó đối tượng được sao chép được truyền, đó là lý do tại sao nó được gọi là Pass by giá trị. Truyền qua tham chiếu: Một bí danh hoặc tham chiếu đến tham số thực tế được chuyển đến phương thức, đó là lý do tại sao nó được gọi là Pass by tham chiếu.The method parameter values are copied to another variable and then the copied object is passed, that's why it's called pass by value. Pass by Reference: An alias or reference to the actual parameter is passed to the method, that's why it's called pass by reference. Python có vượt qua tham chiếu không?Python chuyển các đối số không bằng cách tham chiếu cũng như giá trị, mà bằng cách gán.. Làm thế nào để bạn vượt qua giá trị trong Python?Cuộc gọi theo tham chiếu so với cuộc gọi theo giá trị trong khi gọi một hàm, khi chúng ta truyền các giá trị bằng cách sao chép các biến, nó được gọi là cuộc gọi của các giá trị. Trong phương pháp này, một biến chính được thông qua. Một bản sao của biến được truyền trong một cuộc gọi theo giá trị. Thay đổi trong biến cũng ảnh hưởng đến giá trị của biến bên ngoài hàm.While calling a function, when we pass values by copying variables, it is known as “Call By Values.” In this method, a variable itself is passed. A copy of the variable is passed in a call by value. Change in the variable also affects the value of the variable outside the function. |