Hướng dẫn are ints passed by reference in python? - int có được truyền bằng tham chiếu trong python không?
Các số nguyên là bất biến trong Python và một khi chúng được tạo ra, chúng tôi không thể thay đổi giá trị của chúng bằng cách sử dụng toán tử gán thành một biến, chúng tôi sẽ chỉ ra một số địa chỉ khác không phải là địa chỉ trước đó.immutable in python and once they are created we cannot change their value by using assignment operator to a variable we are making it to point to some other address not the previous address. Show
Trong Python, một hàm có thể trả về nhiều giá trị, chúng ta có thể sử dụng nó:return multiple values we can make use of it:
Để thay đổi tham chiếu, một biến là chỉ ra chúng ta có thể bọc các loại dữ liệu bất biến (int, long, float, phức tạp, str, byte, truple, frozenset) bên trong các loại dữ liệu có thể thay đổi (bytearray, danh sách, tập hợp, dict).int, long, float, complex, str, bytes, truple, frozenset) inside of mutable data types (bytearray, list, set, dict). Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: vượt qua tham chiếu trong Python: Thực tiễn tốt nhất This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Pass by Reference in Python: Best Practices Sau khi đạt được sự quen thuộc với Python, bạn có thể nhận thấy các trường hợp trong đó các chức năng của bạn không sửa đổi các đối số như bạn có thể mong đợi, đặc biệt là nếu bạn quen thuộc với các ngôn ngữ lập trình khác. Một số ngôn ngữ xử lý các đối số chức năng như các tham chiếu đến các biến hiện có, được gọi là vượt qua bởi tham chiếu. Các ngôn ngữ khác xử lý chúng là giá trị độc lập, một cách tiếp cận được gọi là vượt qua giá trị.references to existing variables, which is known as pass by reference. Other languages handle them as independent values, an approach known as pass by value. Nếu bạn là một lập trình viên Python trung gian, người muốn hiểu cách xử lý các đối số chức năng đặc biệt của Python, thì hướng dẫn này là dành cho bạn. Bạn sẽ thực hiện các trường hợp sử dụng thực sự của các cấu trúc ngang qua trong Python và tìm hiểu một số thực tiễn tốt nhất để tránh những cạm bẫy với các đối số chức năng của bạn. Trong hướng dẫn này, bạn sẽ học:
Xác định vượt qua theo tham chiếuTrước khi bạn đi sâu vào các chi tiết kỹ thuật của việc truyền qua tài liệu tham khảo, nó rất hữu ích để xem xét kỹ hơn thuật ngữ này bằng cách chia nó thành các thành phần:
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. Hãy cùng xem xét một số ví dụ về cách thức hoạt động trong thực tế. Dưới đây, bạn sẽ thấy cách truyền các biến bằng cách tham chiếu trong C#. Lưu ý việc sử dụng từ khóa 4 trong các dòng được tô sáng:
Như bạn có thể thấy, 5 của 6 phải được khai báo với từ khóa 4 và bạn cũng phải sử dụng từ khóa khi gọi hàm. Sau đó, đối số sẽ được chuyển qua bằng cách tham chiếu và có thể được sửa đổi tại chỗ.Python không có từ khóa 4 hoặc bất cứ điều gì tương đương với nó. Nếu bạn cố gắng sao chép ví dụ trên càng gần càng tốt trong Python, thì bạn sẽ thấy các kết quả khác nhau:>>>
Trong trường hợp này, biến 9 không bị thay đổi tại chỗ. Có vẻ như Python coi đối số được cung cấp của bạn là một giá trị độc lập hơn là một tham chiếu đến một biến hiện có. Điều này có nghĩa là Python chuyển các đối số theo giá trị chứ không phải bằng tham chiếu?Không hẳn. 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. Dưới đây, bạn sẽ nhanh chóng khám phá các chi tiết về việc chuyển bằng giá trị và vượt qua bằng cách tham khảo trước khi xem xét kỹ hơn theo cách tiếp cận của Python. Sau đó, bạn sẽ đi qua một số thực tiễn tốt nhất để đạt được sự tương đương của việc vượt qua bằng cách tham khảo trong Python.by assignment. Below, you’ll quickly explore the details of passing by value and passing by reference before looking more closely at Python’s approach. After that, you’ll walk through some best practices for achieving the equivalent of passing by reference in Python. Tương phản vượt qua bằng cách tham chiếu và vượt qua giá trịKhi bạn vượt qua các đối số chức năng bằng tham chiếu, các đối số đó chỉ tham khảo các giá trị hiện có. Ngược lại, khi bạn vượt qua các đối số theo giá trị, những đối số đó trở thành bản sao độc lập của các giá trị ban đầu. Hãy để xem lại ví dụ C#, lần này mà không cần sử dụng từ khóa 4. Điều này sẽ khiến chương trình sử dụng hành vi mặc định chuyển bằng giá trị:
Ở đây, bạn có thể thấy rằng 1 không sửa đổi biến ban đầu. Thay vào đó, 2 là một bản sao độc lập của biến ban đầu 9. Mặc dù điều đó phù hợp với hành vi mà bạn sẽ thấy trong Python, hãy nhớ rằng Python không chính xác vượt qua giá trị. Hãy để chứng minh điều đó.Python sườn tích hợp 4 trả về một số nguyên đại diện cho địa chỉ bộ nhớ của đối tượng mong muốn. Sử dụng 4, bạn có thể xác minh các xác nhận sau:
Trong ví dụ dưới đây, lưu ý rằng địa chỉ của 6 ban đầu khớp với 7 nhưng thay đổi sau khi phân công lại, trong khi địa chỉ của 7 không bao giờ thay đổi:>>>
Thực tế là các địa chỉ ban đầu của 7 và 6 là như nhau khi bạn gọi 1 chứng minh rằng đối số 6 không được truyền bởi giá trị. Mặt khác, 7 và 6 sẽ có địa chỉ bộ nhớ riêng biệt.Trước khi bạn tìm hiểu các chi tiết về cách Python xử lý các đối số, hãy để Lôi xem xét một số trường hợp sử dụng thực tế để đi qua bằng cách tham khảo. Sử dụng các cấu trúc tham chiếu vượt quaVượt qua các biến bằng tham chiếu là một trong một số chiến lược bạn có thể sử dụng để thực hiện các mẫu lập trình nhất định. Mặc dù nó hiếm khi cần thiết, nhưng đi qua tham chiếu có thể là một công cụ hữu ích. Trong phần này, bạn sẽ xem xét ba trong số các mẫu phổ biến nhất mà đi qua bằng cách tham khảo là một cách tiếp cận thực tế. Sau đó, bạn sẽ xem cách bạn có thể thực hiện từng mẫu này với Python. Tránh các đối tượng trùng lặpNhư bạn đã thấy, việc chuyển một biến theo giá trị sẽ khiến một bản sao của giá trị đó được tạo và lưu trữ trong bộ nhớ. Trong các ngôn ngữ mặc định để truyền theo giá trị, bạn có thể tìm thấy lợi ích hiệu suất từ việc truyền biến bằng cách tham chiếu thay thế, đặc biệt là khi biến chứa rất nhiều dữ liệu. Điều này sẽ rõ ràng hơn khi mã của bạn đang chạy trên các máy bị hạn chế tài nguyên. Tuy nhiên, trong Python, đây không bao giờ là vấn đề. Bạn sẽ thấy tại sao trong phần tiếp theo. Trả về nhiều giá trịMột trong những ứng dụng phổ biến nhất của việc truyền bằng tham chiếu là tạo một hàm làm thay đổi giá trị của các tham số tham chiếu trong khi trả về một giá trị riêng biệt. Bạn có thể sửa đổi ví dụ C# Pass-By-Reference của mình để minh họa kỹ thuật này:
Trong ví dụ trên, 5 trả về một chuỗi lời chào và cũng sửa đổi giá trị của 6. Bây giờ hãy cố gắng tái tạo điều này càng gần càng tốt trong Python:>>>
6 được tăng lên trong ví dụ trên bởi vì, như bạn đã học trước đây, Python không có cách nào để vượt qua các giá trị bằng cách tham khảo. Vậy làm thế nào bạn có thể đạt được kết quả tương tự như bạn đã làm với C#?Về bản chất, các tham số tham chiếu trong C# cho phép hàm không chỉ trả về một giá trị mà còn hoạt động trên các tham số bổ sung. Điều này tương đương với việc trả về nhiều giá trị! May mắn thay, Python đã hỗ trợ trả về nhiều giá trị. Nói đúng ra, một hàm Python trả về nhiều giá trị thực sự trả về một tuple chứa mỗi giá trị: >>>
Như bạn có thể thấy, để trả về nhiều giá trị, bạn chỉ có thể sử dụng từ khóa 8 theo sau là các giá trị hoặc biến được phân tách bằng dấu phẩy.Được trang bị kỹ thuật này, bạn có thể thay đổi câu lệnh 8 trong 5 từ mã Python trước đó của bạn để trả về cả lời chào và một bộ đếm:>>>
Điều đó vẫn không có vẻ đúng. Mặc dù 5 hiện trả về nhiều giá trị, nhưng chúng được in dưới dạng 2, đó là ý định của bạn. Hơn nữa, biến 6 ban đầu vẫn ở mức 4.Để làm sạch đầu ra của bạn và nhận kết quả mong muốn, bạn sẽ phải gán lại biến 6 của mình với mỗi cuộc gọi đến 5:reassign your 6 variable with each call to 5:>>> 0Bây giờ, sau khi chỉ định lại từng biến với một cuộc gọi đến 5, bạn có thể thấy kết quả mong muốn!Gán các giá trị trả về cho các biến là cách tốt nhất để đạt được kết quả tương tự như truyền bằng cách tham chiếu trong Python. Bạn sẽ tìm hiểu lý do tại sao, cùng với một số phương pháp bổ sung, trong phần về các thực tiễn tốt nhất. Tạo các chức năng đa hoàn trả có điều kiệnĐây là một trường hợp sử dụng cụ thể của việc trả về nhiều giá trị trong đó hàm có thể được sử dụng trong một câu lệnh có điều kiện và có các tác dụng phụ bổ sung như sửa đổi một biến bên ngoài được truyền như một đối số. Hãy xem xét chức năng Int32.TryParse tiêu chuẩn trong C#, trả về Boolean và hoạt động trên một tham chiếu đến một đối số số nguyên cùng một lúc: 1Hàm này cố gắng chuyển đổi 8 thành số nguyên có chữ ký 32 bit bằng cách sử dụng từ khóa 9. Có hai kết quả có thể xảy ra:
Bạn có thể thấy điều này trong thực tế trong ví dụ sau, cố gắng chuyển đổi một số chuỗi khác nhau: 2Mã trên, cố gắng chuyển đổi các chuỗi được định dạng khác nhau thành số nguyên thông qua 3, xuất ra như sau: 3Để thực hiện một chức năng tương tự trong Python, bạn có thể sử dụng nhiều giá trị trả về như bạn đã thấy trước đây: 4 4 này trả về hai giá trị. Giá trị đầu tiên cho biết việc chuyển đổi có thành công hay không và lần thứ hai giữ kết quả (hoặc 5, trong trường hợp thất bại).Tuy nhiên, sử dụng chức năng này là một chút lộn xộn vì bạn cần giải nén các giá trị trả về với mỗi cuộc gọi. Điều này có nghĩa là bạn có thể sử dụng chức năng trong câu lệnh 6:>>> 5Mặc dù nó thường hoạt động bằng cách trả về nhiều giá trị, 4 có thể được sử dụng trong kiểm tra điều kiện. Điều đó có nghĩa là bạn có thêm một số việc phải làm.Bạn có thể tận dụng tính linh hoạt của Python và đơn giản hóa chức năng để trả về một giá trị duy nhất của các loại khác nhau tùy thuộc vào việc chuyển đổi có thành công hay không: 6Với khả năng các chức năng Python trả về các loại dữ liệu khác nhau, giờ đây bạn có thể sử dụng chức năng này trong một câu lệnh có điều kiện. Nhưng bằng cách nào? Bạn sẽ phải gọi hàm trước, gán giá trị trả về của nó và sau đó kiểm tra giá trị? Bằng cách tận dụng tính linh hoạt của Python, trong các loại đối tượng, cũng như các biểu thức gán mới trong Python 3.8, bạn có thể gọi hàm đơn giản này trong câu lệnh 6 có điều kiện và nhận giá trị trả về nếu kiểm tra vượt qua:>>> 7Mặc dù nó thường hoạt động bằng cách trả về nhiều giá trị, 4 có thể được sử dụng trong kiểm tra điều kiện. Điều đó có nghĩa là bạn có thêm một số việc phải làm.Bạn có thể tận dụng tính linh hoạt của Python và đơn giản hóa chức năng để trả về một giá trị duy nhất của các loại khác nhau tùy thuộc vào việc chuyển đổi có thành công hay không:assigning return values when using the assignment expression operator( 0) and using the return value directly in Python expressions.Với khả năng các chức năng Python trả về các loại dữ liệu khác nhau, giờ đây bạn có thể sử dụng chức năng này trong một câu lệnh có điều kiện. Nhưng bằng cách nào? Bạn sẽ phải gọi hàm trước, gán giá trị trả về của nó và sau đó kiểm tra giá trị? Bằng cách tận dụng tính linh hoạt của Python, trong các loại đối tượng, cũng như các biểu thức gán mới trong Python 3.8, bạn có thể gọi hàm đơn giản này trong câu lệnh >>> def main(): ... counter = 0 ... print(greet("Alice", counter)) ... print(f"Counter is {counter}") ... print(greet("Bob", counter)) ... print(f"Counter is {counter}") ... >>> def greet(name, counter): ... counter += 1 ... return f"Hi, {name}!" ... >>> main() Hi, Alice! Counter is 0 Hi, Bob! Counter is 0 6 có điều kiện và nhận giá trị trả về nếu kiểm tra vượt qua:Ồ! Phiên bản Python này của 4 thậm chí còn mạnh hơn phiên bản C#, cho phép bạn sử dụng nó trong các câu lệnh có điều kiện và trong các biểu thức số học.Với một chút khéo léo, bạn đã sao chép một mô hình chuyển qua cụ thể và hữu ích mà không thực sự truyền cho các đối số bằng cách tham khảo. Trên thực tế, bạn lại một lần nữa gán các giá trị trả về khi sử dụng toán tử biểu thức gán (________ 80) và sử dụng giá trị trả về trực tiếp trong các biểu thức Python. Cho đến nay, bạn đã học được những gì vượt qua bằng cách tham khảo có nghĩa là, nó khác với việc vượt qua giá trị như thế nào và cách tiếp cận của Python khác với cả hai. Bây giờ bạn đã sẵn sàng để xem xét kỹ hơn về cách Python xử lý các đối số chức năng!Vượt qua các cuộc tranh luận trong Python
Hiểu nhiệm vụ trong Python Tham khảo ngôn ngữ Python cho các câu lệnh gán cung cấp các chi tiết sau:
Hãy để ví dụ về ví dụ 1 và kiểm tra điều gì xảy ra khi bạn gán giá trị cho một biến mới:
Bây giờ ở đây, những gì xảy ra nếu bạn phân công lại 6 thành một giá trị khác: 8Bộ đếm tham chiếu của đối tượng đại diện cho 3 bị giảm. 9Bộ đếm tham chiếu của đối tượng đại diện cho giá trị mới được tăng lên. Từ điển cho không gian tên hiện tại được cập nhật để liên hệ 6 với đối tượng đại diện cho giá trị mới.Khám phá các đối số chức năngĐối số chức năng trong Python là các biến cục bộ. Điều đó nghĩa là gì? Địa phương là một trong những phạm vi Python. Các phạm vi này được thể hiện bằng từ điển không gian tên được đề cập trong phần trước. Bạn có thể sử dụng 3 và 4 để truy xuất từ điển không gian tên địa phương và toàn cầu, tương ứng.local variables. What does that mean? Local is one of Python’s scopes. These scopes are represented by the namespace dictionaries mentioned in the previous section. You can use 3 and 4 to retrieve the local and global namespace dictionaries, respectively.Sau khi thực hiện, mỗi hàm có không gian tên cục bộ riêng: >>> 0Sử dụng 3, bạn có thể chứng minh rằng các đối số chức năng trở thành các biến thường xuyên trong không gian tên cục bộ của hàm. Hãy để thêm một đối số, 02, vào chức năng:>>> 1Sử dụng 3, bạn có thể chứng minh rằng các đối số chức năng trở thành các biến thường xuyên trong không gian tên cục bộ của hàm. Hãy để thêm một đối số, 02, vào chức năng:>>> 2Sử dụng 3, bạn có thể chứng minh rằng các đối số chức năng trở thành các biến thường xuyên trong không gian tên cục bộ của hàm. Hãy để thêm một đối số, 02, vào chức năng:Bạn cũng có thể sử dụng 8 để hiển thị cách các đối số chức năng tăng bộ đếm tham chiếu cho một đối tượng:Các đầu ra tập lệnh trên được tính tham chiếu cho 04 đầu tiên bên ngoài, sau đó bên trong 05, cho thấy mức tăng số lượng tham chiếu không phải một, mà là hai!Điều đó bởi vì, ngoài chính 05, cuộc gọi đến 8 bên trong 05 cũng nhận được 02 như một đối số. Điều này đặt 02 trong không gian tên địa phương cho 8, thêm một tham chiếu bổ sung vào 04.Bằng cách kiểm tra các không gian tên và số lượng tham chiếu bên trong các hàm, bạn có thể thấy rằng các đối số chức năng hoạt động chính xác giống như các bài tập: Python tạo các ràng buộc trong hàm tên tên cục bộ giữa các định danh và đối tượng Python đại diện cho các giá trị đối số. Mỗi ràng buộc này sẽ tăng bộ đếm tham chiếu đối tượng.Bây giờ bạn có thể thấy Python vượt qua các đối số bằng cách chuyển nhượng! >>> 3
Sử dụng 3, bạn có thể chứng minh rằng các đối số chức năng trở thành các biến thường xuyên trong không gian tên cục bộ của hàm. Hãy để thêm một đối số, 02, vào chức năng:
Bây giờ bạn có thể thấy Python vượt qua các đối số bằng cách chuyển nhượng! >>> 4Sử dụng 3, bạn có thể chứng minh rằng các đối số chức năng trở thành các biến thường xuyên trong không gian tên cục bộ của hàm. Hãy để thêm một đối số, 02, vào chức năng:Bạn cũng có thể sử dụng 8 để hiển thị cách các đối số chức năng tăng bộ đếm tham chiếu cho một đối tượng:Các đầu ra tập lệnh trên được tính tham chiếu cho #var is an instance of dictionary type def change(var,key,new_value): var[key]=new_value var =dict() var['a']=33 change(var,'a',2625) print(var['a']) 04 đầu tiên bên ngoài, sau đó bên trong #var is an instance of dictionary type def change(var,key,new_value): var[key]=new_value var =dict() var['a']=33 change(var,'a',2625) print(var['a']) 05, cho thấy mức tăng số lượng tham chiếu không phải một, mà là hai!Điều đó bởi vì, ngoài chính 05, cuộc gọi đến 8 bên trong 05 cũng nhận được 02 như một đối số. Điều này đặt 02 trong không gian tên địa phương cho 8, thêm một tham chiếu bổ sung vào 04.Bằng cách kiểm tra các không gian tên và số lượng tham chiếu bên trong các hàm, bạn có thể thấy rằng các đối số chức năng hoạt động chính xác giống như các bài tập: Python tạo các ràng buộc trong hàm tên tên cục bộ giữa các định danh và đối tượng Python đại diện cho các giá trị đối số. Mỗi ràng buộc này sẽ tăng bộ đếm tham chiếu đối tượng. 5Bây giờ bạn có thể thấy Python vượt qua các đối số bằng cách chuyển nhượng! Sao chép vượt qua bằng cách tham khảo với Python Sau khi kiểm tra các không gian tên trong phần trước, bạn có thể hỏi tại sao 13 đã được đề cập như một cách để sửa đổi các biến như thể chúng được thông qua bởi tham chiếu: 6Sử dụng câu lệnh 13 thường lấy đi sự rõ ràng của mã của bạn. Nó có thể tạo ra một số vấn đề, bao gồm cả những vấn đề sau:Các biến miễn phí, dường như không liên quan đến bất cứ điều gìCác chức năng mà không có các đối số rõ ràng cho các biến nói trên Các chức năng có thể được sử dụng chung với các biến hoặc đối số khác vì chúng dựa vào một biến toàn cầu duy nhất >>> 7Thiếu an toàn sợi chỉ khi sử dụng các biến toàn cầu Tương phản ví dụ trước với các điều sau đây, trong đó trả về một giá trị rõ ràng: >>> 8Nỗ lực sửa đổi các thuộc tính mà don lồng cho phép sửa đổi dẫn đến 17.Ngoài ra, bạn nên chú ý đến các thuộc tính lớp. Chúng sẽ không thay đổi và một thuộc tính thể hiện sẽ được tạo và sửa đổi: >>> 9Vì các thuộc tính lớp vẫn không thay đổi khi được sửa đổi thông qua một thể hiện lớp, bạn sẽ cần nhớ tham chiếu thuộc tính thể hiện. Thực hành tốt nhất: Sử dụng từ điển và danh sáchTừ điển trong Python là một loại đối tượng khác với tất cả các loại tích hợp khác. Họ được gọi là loại ánh xạ. Tài liệu Python sườn về các loại ánh xạ cung cấp một số cái nhìn sâu sắc về thuật ngữ:mapping types. Python’s documentation on mapping types provides some insight into the term:
Hướng dẫn này không bao gồm cách thực hiện một loại ánh xạ tùy chỉnh, nhưng bạn có thể sao chép thẻ bằng cách tham chiếu bằng từ điển khiêm tốn. Ở đây, một ví dụ sử dụng chức năng hoạt động trực tiếp trên các yếu tố từ điển: >>> 0Vì bạn đã chỉ định lại một giá trị cho khóa từ điển, hoạt động trên các phần tử từ điển vẫn là một hình thức gán. Với từ điển, bạn có được tính thực tế bổ sung khi truy cập giá trị sửa đổi thông qua cùng một đối tượng từ điển. Mặc dù danh sách các loại ánh xạ aren, bạn có thể sử dụng chúng theo cách tương tự như từ điển vì hai đặc điểm quan trọng: khả năng đăng ký và khả năng đột biến. Những đặc điểm này đáng để giải thích thêm một chút, nhưng trước tiên, hãy để xem các thực tiễn tốt nhất để bắt chước vượt qua bằng cách tham khảo bằng danh sách Python.subscriptability and mutability. These characteristics are worthy of a little more explanation, but let’s first take a look at best practices for mimicking pass by reference using Python lists. Để sao chép Pass bằng tham chiếu bằng danh sách, hãy viết một chức năng hoạt động trực tiếp trên các yếu tố danh sách: >>> 1Vì bạn đã chỉ định lại một giá trị cho một yếu tố trong danh sách, hoạt động trên các yếu tố danh sách vẫn là một hình thức gán. Tương tự như từ điển, danh sách cho phép bạn truy cập giá trị sửa đổi thông qua cùng một đối tượng danh sách. Bây giờ, hãy để khám phá khả năng đăng ký. Một đối tượng có thể đăng ký khi một tập hợp con của cấu trúc của nó có thể được truy cập bởi các vị trí chỉ mục:subscriptable when a subset of its structure can be accessed by index positions: >>> 2Danh sách, bộ dữ liệu và chuỗi là có thể đăng ký, nhưng các bộ thì không. Cố gắng truy cập vào một yếu tố của một đối tượng không thể đăng ký sẽ tăng 18.Khả năng đột biến là một chủ đề rộng hơn yêu cầu tham chiếu tài liệu và thăm dò bổ sung. Để giữ cho mọi thứ ngắn gọn, một đối tượng có thể thay đổi nếu cấu trúc của nó có thể được thay đổi tại chỗ thay vì yêu cầu phân công lại:mutable if its structure can be changed in place rather than requiring reassignment: >>> 3Danh sách và bộ có thể thay đổi, cũng như từ điển và các loại ánh xạ khác. Chuỗi và bộ dữ liệu không thể thay đổi. Cố gắng sửa đổi một yếu tố của một đối tượng bất biến sẽ tăng 18.Sự kết luậnPython hoạt động khác với các ngôn ngữ hỗ trợ các đối số truyền theo tham chiếu hoặc theo giá trị. Các đối số chức năng trở thành các biến cục bộ được gán cho từng giá trị được truyền cho hàm. Nhưng điều này không ngăn cản bạn đạt được kết quả tương tự mà bạn mong đợi khi chuyển các đối số bằng cách tham khảo bằng các ngôn ngữ khác. Trong hướng dẫn này, bạn đã học được:
Bạn cũng đã học được một số thực tiễn tốt nhất bổ sung để sao chép các cấu trúc tham chiếu theo từng tham chiếu trong Python. Bạn có thể sử dụng kiến thức này để thực hiện các mẫu có truyền thống cần hỗ trợ để truyền qua tham chiếu. Để tiếp tục hành trình Python của bạn, tôi khuyến khích bạn đi sâu hơn vào một số chủ đề liên quan mà bạn đã gặp ở đây, như tính biến đổi, biểu thức chuyển nhượng, và không gian tên và phạm vi Python. Hãy tò mò, và hẹn gặp lại lần sau! Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: vượt qua tham chiếu trong Python: Thực tiễn tốt nhất This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Pass by Reference in Python: Best Practices Python có vượt qua tham chiếu hay theo giá trị không?Mô hình truyền cho đối số của Python không phải là người vượt qua giá trị, hay vượt qua bằng cách tham chiếu, nhưng đó là cách vượt qua tham chiếu đối tượng.Pass by Object Reference”.
Các số được truyền theo giá trị trong Python?Các số nguyên (và tất cả các giá trị khác) trong Python luôn được truyền bởi giá trị.Tuy nhiên, bạn có thể vượt qua các tài liệu tham khảo, khác nhau.Nói cách khác, bạn có thể vượt qua tài liệu tham khảo theo giá trị.. You can, however, pass references, which is different. In other words, you can pass references by value.
Làm thế nào để INT hoạt động trong Python?Hàm python int () chuyển đổi giá trị được chỉ định thành số nguyên.Hàm int () sẽ trả về một đối tượng số nguyên được xây dựng từ một số hoặc chuỗi hãy nói x hoặc trả về 0 nếu không có ents ents nào được chỉ định.converts the specified value into an integer number. The int() function will returns an integer object constructed from a number or string let say x, or return 0 if no argum ents are specified.
Các mảng Python có được thông qua bởi tham chiếu không?Mảng chuỗi, danh sách, bộ dữ liệu và từ điển được truyền đến và từ giá trị.Các mảng số được truyền qua tham chiếu khi chúng được sử dụng làm đối số hoặc từ khóa cho các phương thức Python.Các mảng số được truyền theo giá trị khi chúng được chuyển từ IDL sang cấp độ Python __main__ và khi Python trả về kết quả cho IDL.Numeric arrays are passed by reference when they are used as arguments or keywords to Python methods. Numeric arrays are passed by value when they are passed from IDL to the Python __main__ level and when Python returns a result to IDL. |