Python có phải là loại tham chiếu không?
Inside Function: new value Outside Function: old value9 ['Nothing, 'how', 'are', 'you', 'doing']3 ['Nothing, 'how', 'are', 'you', 'doing']1 ['Nothing, 'how', 'are', 'you', 'doing']2 Inside Function: new value Outside Function: old value5 ['Nothing, 'how', 'are', 'you', 'doing']4 Inside Function: new value Outside Function: old value5 ['Nothing, 'how', 'are', 'you', 'doing']6 Inside Function: new value Outside Function: old value5 ['Nothing, 'how', 'are', 'you', 'doing']8 ['Nothing, 'how', 'are', 'you', 'doing']9 Show
['Nothing, 'how', 'are', 'you', 'doing']40 ['Nothing, 'how', 'are', 'you', 'doing']09 ['Nothing, 'how', 'are', 'you', 'doing']10____118 ['Nothing, 'how', 'are', 'you', 'doing']44 Đầu ra ['Nothing, 'how', 'are', 'you', 'doing']0
Ràng buộc tên đối tượngTrong python, mỗi biến mà chúng ta gán giá trị/vùng chứa được coi là một đối tượng. Khi chúng ta gán một giá trị cho một biến, chúng ta thực sự đang gắn tên cho một đối tượng. Python3['Nothing, 'how', 'are', 'you', 'doing']45 ['Nothing, 'how', 'are', 'you', 'doing']3 ['Nothing, 'how', 'are', 'you', 'doing']47 ['Nothing, 'how', 'are', 'you', 'doing']48 ['Nothing, 'how', 'are', 'you', 'doing']3 ['Nothing, 'how', 'are', 'you', 'doing']47
['Nothing, 'how', 'are', 'you', 'doing']021 ['Nothing, 'how', 'are', 'you', 'doing']022 ['Nothing, 'how', 'are', 'you', 'doing']09 ['Nothing, 'how', 'are', 'you', 'doing']10____1025 ['Nothing, 'how', 'are', 'you', 'doing']026
['Nothing, 'how', 'are', 'you', 'doing']021 ['Nothing, 'how', 'are', 'you', 'doing']022 ['Nothing, 'how', 'are', 'you', 'doing']09 ['Nothing, 'how', 'are', 'you', 'doing']10____1025 ['Nothing, 'how', 'are', 'you', 'doing']092
['Nothing, 'how', 'are', 'you', 'doing']093 ['Nothing, 'how', 'are', 'you', 'doing']094 ['Nothing, 'how', 'are', 'you', 'doing']09 ['Nothing, 'how', 'are', 'you', 'doing']096______1097 ['Nothing, 'how', 'are', 'you', 'doing']098 Đầu ra ['Nothing, 'how', 'are', 'you', 'doing']1 Bây giờ, hãy thử và hiểu điều này tốt hơn với một ví dụ khác. Python3['Nothing, 'how', 'are', 'you', 'doing']45 ['Nothing, 'how', 'are', 'you', 'doing']3 ['Nothing, 'how', 'are', 'you', 'doing']1_______12 Inside Function: new value Outside Function: old value5 ['Nothing, 'how', 'are', 'you', 'doing']4 Inside Function: new value Outside Function: old value5 ['Nothing, 'how', 'are', 'you', 'doing']6 ['Nothing, 'how', 'are', 'you', 'doing']9 ['Nothing, 'how', 'are', 'you', 'doing']48 ['Nothing, 'how', 'are', 'you', 'doing']3 ['Nothing, 'how', 'are', 'you', 'doing']1_______12 Inside Function: new value Outside Function: old value5 ['Nothing, 'how', 'are', 'you', 'doing']4 Inside Function: new value Outside Function: old value5 ['Nothing, 'how', 'are', 'you', 'doing']6 ['Nothing, 'how', 'are', 'you', 'doing']9
['Nothing, 'how', 'are', 'you', 'doing']007 ['Nothing, 'how', 'are', 'you', 'doing']008 ['Nothing, 'how', 'are', 'you', 'doing']009 ['Nothing, 'how', 'are', 'you', 'doing']09 ['Nothing, 'how', 'are', 'you', 'doing']10____1025 ['Nothing, 'how', 'are', 'you', 'doing']026
['Nothing, 'how', 'are', 'you', 'doing']007 ['Nothing, 'how', 'are', 'you', 'doing']008 ['Nothing, 'how', 'are', 'you', 'doing']009 ['Nothing, 'how', 'are', 'you', 'doing']09 ['Nothing, 'how', 'are', 'you', 'doing']10____1025 ['Nothing, 'how', 'are', 'you', 'doing']092
['Nothing, 'how', 'are', 'you', 'doing']021 ['Nothing, 'how', 'are', 'you', 'doing']022 ['Nothing, 'how', 'are', 'you', 'doing']09 ['Nothing, 'how', 'are', 'you', 'doing']096______1097 ['Nothing, 'how', 'are', 'you', 'doing']098 Đầu ra ['Nothing, 'how', 'are', 'you', 'doing']7 Đầu ra của hai ví dụ trên khác nhau vì danh sách có thể thay đổi và chuỗi không thay đổi. Một biến bất biến không thể thay đổi sau khi được tạo. Nếu chúng ta muốn thay đổi một biến bất biến, chẳng hạn như một chuỗi, chúng ta phải tạo một thể hiện mới và liên kết biến với thể hiện mới. Trong khi đó, biến có thể thay đổi có thể được thay đổi tại chỗ. Python3['Nothing, 'how', 'are', 'you', 'doing']01 ['Nothing, 'how', 'are', 'you', 'doing']028 ['Nothing, 'how', 'are', 'you', 'doing']03 ['Nothing, 'how', 'are', 'you', 'doing']03 ['Nothing, 'how', 'are', 'you', 'doing']031 ['Nothing, 'how', 'are', 'you', 'doing']03 ['Nothing, 'how', 'are', 'you', 'doing']033 ['Nothing, 'how', 'are', 'you', 'doing']03 ['Nothing, 'how', 'are', 'you', 'doing']45 ['Nothing, 'how', 'are', 'you', 'doing']3 ['Nothing, 'how', 'are', 'you', 'doing']037 ['Nothing, 'how', 'are', 'you', 'doing']03 ['Nothing, 'how', 'are', 'you', 'doing']09 ['Nothing, 'how', 'are', 'you', 'doing']10 ['Nothing, 'how', 'are', 'you', 'doing']11 ['Nothing, 'how', 'are', 'you', 'doing']042 ['Nothing, 'how', 'are', 'you', 'doing']03 ['Nothing, 'how', 'are', 'you', 'doing']03 ['Nothing, 'how', 'are', 'you', 'doing']14 ________ 109 ________ 93 ________ 1048 ['Nothing, 'how', 'are', 'you', 'doing']049
['Nothing, 'how', 'are', 'you', 'doing']09 ['Nothing, 'how', 'are', 'you', 'doing']10____118 ['Nothing, 'how', 'are', 'you', 'doing']12 Đầu ra. Inside Function: new value Outside Function: old value Trong ví dụ trên, một chuỗi là một loại đối tượng không thay đổi được truyền làm đối số cho hàm foo. Trong phạm vi của hàm đã cho foo, a= “giá trị mới” đã được liên kết với cùng một đối tượng mà chuỗi đã được liên kết bên ngoài. Trong phạm vi của hàm foo, chúng tôi sửa đổi “giá trị cũ”` thành “giá trị mới”. Khi chúng tôi rời khỏi phạm vi của chức năng foo , a=”new value” không còn trong không gian tên và giá trị mà chuỗi đề cập đến không bao giờ thay đổi. Python3['Nothing, 'how', 'are', 'you', 'doing']01 ['Nothing, 'how', 'are', 'you', 'doing']028 ['Nothing, 'how', 'are', 'you', 'doing']03 ['Nothing, 'how', 'are', 'you', 'doing']057____1058 ['Nothing, 'how', 'are', 'you', 'doing']9 ['Nothing, 'how', 'are', 'you', 'doing']3 ['Nothing, 'how', 'are', 'you', 'doing']061 ['Nothing, 'how', 'are', 'you', 'doing']03 ['Nothing, 'how', 'are', 'you', 'doing']063 ['Nothing, 'how', 'are', 'you', 'doing']064 ['Nothing, 'how', 'are', 'you', 'doing']3 ['Nothing, 'how', 'are', 'you', 'doing']1 ['Nothing, 'how', 'are', 'you', 'doing']067 Inside Function: new value Outside Function: old value5 ['Nothing, 'how', 'are', 'you', 'doing']069 Inside Function: new value Outside Function: old value5 ['Nothing, 'how', 'are', 'you', 'doing']071 Inside Function: new value Outside Function: old value5 ['Nothing, 'how', 'are', 'you', 'doing']073 Inside Function: new value Outside Function: old value5 ['Nothing, 'how', 'are', 'you', 'doing']075 ['Nothing, 'how', 'are', 'you', 'doing']9 Python có phải là giá trị hoặc tham chiếu 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.
Mọi thứ trong Python có phải là tài liệu tham khảo không?Mọi thứ được truyền theo giá trị nhưng giá trị đó là tham chiếu đến đối tượng ban đầu . Nếu bạn sửa đổi đối tượng, những thay đổi sẽ hiển thị cho người gọi, nhưng bạn không thể gán lại tên. Hơn nữa, nhiều đối tượng là bất biến (int, float, string, tuple).
Phân công Python theo giá trị hay tham chiếu?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ộ cho hàm, thì việc truyền giống như gọi theo giá trị vì bạn không thể thay đổi .
Các loại tài liệu tham khảo là gì?Ví dụ về các loại dữ liệu tham chiếu là lớp, Mảng, Chuỗi, Giao diện , v.v. Ví dụ về các kiểu dữ liệu nguyên thủy là int, float, double, Boolean, long, v.v. Theo mặc định, JVM phân bổ 8 byte cho mỗi biến tham chiếu. Kích thước của nó phụ thuộc vào kiểu dữ liệu. |