Hướng dẫn what are immutable in python? - những gì là bất biến trong python?

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    ĐọcMutable and Immutable objects. Whenever an object is instantiated, it is assigned a unique object id. The type of the object is defined at the runtime and it can’t be changed afterwards. However, it’s state can be changed if it is a mutable object.

    Bàn luận

    • Mỗi biến trong Python đều giữ một ví dụ của một đối tượng. Có hai loại đối tượng trong Python, tức là các đối tượng có thể thay đổi và bất biến. Bất cứ khi nào một đối tượng được khởi tạo, nó được gán một ID đối tượng duy nhất. Loại đối tượng được xác định trong thời gian chạy và nó có thể được thay đổi sau đó. Tuy nhiên, trạng thái của nó có thể được thay đổi nếu đó là một đối tượng có thể thay đổi. These are of in-built types like int, float, bool, string, unicode, tuple. In simple words, an immutable object can’t be changed after it is created.

      Để tóm tắt sự khác biệt, các đối tượng có thể thay đổi có thể thay đổi trạng thái hoặc nội dung của chúng và các đối tượng bất biến có thể thay đổi trạng thái hoặc nội dung của chúng.

      Các đối tượng bất biến: Đây là những loại được xây dựng như int, float, bool, chuỗi, unicode, tuple. Nói một cách đơn giản, một đối tượng bất biến có thể được thay đổi sau khi nó được tạo ra.

       tup = ([3, 4, 5], 'myname') 
      4
       tup = ([3, 4, 5], 'myname') 
      5

      Traceback (most recent call last):
        File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
          message[0] = 'p'
      TypeError: 'str' object does not support item assignment
      8
      Traceback (most recent call last):
        File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
          message[0] = 'p'
      TypeError: 'str' object does not support item assignment
      9
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      0
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      1
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      2
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      3__22222525222227272828

      Traceback (most recent call last):
        File "e0eaddff843a8695575daec34506f126.py", line 3, in 
          tuple1[0]=4
      TypeError: 'tuple' object does not support item assignment

      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      9
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      1
       tup = ([3, 4, 5], 'myname') 
      1
      Traceback (most recent call last):
        File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
          message[0] = 'p'
      TypeError: 'str' object does not support item assignment
      9
       tup = ([3, 4, 5], 'myname') 
      3

      Lỗi :

       tup = ([3, 4, 5], 'myname') 
      4
      print("The following instance is an object:",isinstance(3,object))
      print("Another instance for object", isinstance(True, object))
      def my_func():
          return "guru99"
      print("This is a function example and regarded as an object in Python:", isinstance(my_func, object))
      
      5

      Traceback (most recent call last):
        File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
          message[0] = 'p'
      TypeError: 'str' object does not support item assignment
      8
      Traceback (most recent call last):
        File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
          message[0] = 'p'
      TypeError: 'str' object does not support item assignment
      9
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      0
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      1
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      2
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      3__22222525222227272828

      Traceback (most recent call last):
        File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
          message[0] = 'p'
      TypeError: 'str' object does not support item assignment
    • ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      9
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      1
       tup = ([3, 4, 5], 'myname') 
      1
      Traceback (most recent call last):
        File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
          message[0] = 'p'
      TypeError: 'str' object does not support item assignment
      9
       tup = ([3, 4, 5], 'myname') 
      3
      These are of type list, dict, set. Custom classes are generally mutable.

      Lỗi :

       tup = ([3, 4, 5], 'myname') 
      6
      Traceback (most recent call last):
        File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
          message[0] = 'p'
      TypeError: 'str' object does not support item assignment
      9
       tup = ([3, 4, 5], 'myname') 
      8

       tup = ([3, 4, 5], 'myname') 
      9
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      1
       tup = ([3, 4, 5], 'myname') 
      1
      Traceback (most recent call last):
        File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
          message[0] = 'p'
      TypeError: 'str' object does not support item assignment
      9
      print("The following instance is an object:",isinstance(3,object))
      print("Another instance for object", isinstance(True, object))
      def my_func():
          return "guru99"
      print("This is a function example and regarded as an object in Python:", isinstance(my_func, object))
      
      3

      Các đối tượng có thể thay đổi: Đây là danh sách loại, Dict, Set. Các lớp tùy chỉnh thường có thể thay đổi.

       tup = ([3, 4, 5], 'myname') 
      4
      A following instance is an object: True
      Another instance for object True
      This is a function example and regarded as an object in Python: True
      
      6

      Output:

      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']

    print("The following instance is an object:",isinstance(3,object))
    print("Another instance for object", isinstance(True, object))
    def my_func():
        return "guru99"
    print("This is a function example and regarded as an object in Python:", isinstance(my_func, object))
    
    6
    Traceback (most recent call last):
      File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
        message[0] = 'p'
    TypeError: 'str' object does not support item assignment
    9
    print("The following instance is an object:",isinstance(3,object))
    print("Another instance for object", isinstance(True, object))
    def my_func():
        return "guru99"
    print("This is a function example and regarded as an object in Python:", isinstance(my_func, object))
    
    8
    print("The following instance is an object:",isinstance(3,object))
    print("Another instance for object", isinstance(True, object))
    def my_func():
        return "guru99"
    print("This is a function example and regarded as an object in Python:", isinstance(my_func, object))
    
    9
    ['red', 'blue', 'green']
    ['pink', 'blue', 'orange']
    2221
    ['red', 'blue', 'green']
    ['pink', 'blue', 'orange']
    22223

    1.  tup = ([3, 4, 5], 'myname') 
      4
      A following instance is an object: True
      Another instance for object True
      This is a function example and regarded as an object in Python: True
      
      6change because it involves the creation of a copy.
      Whereas mutable objects are easy to change.
    2. A following instance is an object: True
      Another instance for object True
      This is a function example and regarded as an object in Python: True
      
      7
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      1
       tup = ([3, 4, 5], 'myname') 
      1
      Traceback (most recent call last):
        File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
          message[0] = 'p'
      TypeError: 'str' object does not support item assignment
      9
      z=200
      id(z)
      print("the id of object is",z)
      
      1
    3. A following instance is an object: True
      Another instance for object True
      This is a function example and regarded as an object in Python: True
      
      7
      z=200
      id(z)
      print("the id of object is",z)
      
      3
      ['red', 'blue', 'green']
      ['pink', 'blue', 'orange']
      3
       tup = ([3, 4, 5], 'myname') 
      1
      Traceback (most recent call last):
        File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
          message[0] = 'p'
      TypeError: 'str' object does not support item assignment
      9
      z=200
      id(z)
      print("the id of object is",z)
      
      7
      However, there is an exception in immutability as well. We know that tuple in python is immutable. But the tuple consists of a sequence of names with unchangeable bindings to objects.
      Consider a tuple
       tup = ([3, 4, 5], 'myname') 

      Sự kết luậnThe tuple itself isn’t mutable but contain items that are mutable.

    Các đối tượng có thể thay đổi và bất biến được xử lý khác nhau trong Python. Các đối tượng bất biến nhanh hơn để truy cập và rất tốn kém để thay đổi vì nó liên quan đến việc tạo ra một bản sao. Các đối tượng có thể thay đổi có thể thay đổi.


    Bộ

    tập hợp các đối tượng riêng biệt có tính chất không có thứ tự

    Frozenset

    Trong hướng dẫn Python này, bạn sẽ học:

    • Đối tượng có thể thay đổi là gì?
    • Đối tượng bất biến là gì?
    • Trong Python, mọi thứ đều là một đối tượng
    • Các đối tượng có thể thay đổi trong Python
    • Các vật thể bất biến trong Python
    • Ý nghĩa đối với các khóa từ điển trong Python
    • Ngoại lệ trong tính bất biến
    • Các đối tượng có thể thay đổi so với bất biến
    • Các loại dữ liệu bất biến Python

    Đối tượng bất biến là gì?

    Trong Python, mọi thứ đều là một đối tượng
    These objects become permanent once created and initialized, and they form a critical part of data structures used in Python.

    Các đối tượng có thể thay đổi trong Python

    Trong Python, mọi thứ đều là một đối tượng

    Các đối tượng có thể thay đổi trong Python

    Các vật thể bất biến trong Python

    Ý nghĩa đối với các khóa từ điển trong Python

    print("The following instance is an object:",isinstance(3,object))
    print("Another instance for object", isinstance(True, object))
    def my_func():
        return "guru99"
    print("This is a function example and regarded as an object in Python:", isinstance(my_func, object))
    

    Output:

    A following instance is an object: True
    Another instance for object True
    This is a function example and regarded as an object in Python: True
    

    Ngoại lệ trong tính bất biến

    Ý nghĩa đối với các khóa từ điển trong Python

    z=200
    id(z)
    print("the id of object is",z)
    

    Output:

    the id of object is 9795360
    

    Ngoại lệ trong tính bất biến

    Các đối tượng có thể thay đổi so với bất biến

    Các loại dữ liệu bất biến Python

    Các đối tượng bất biến trong Python có thể được định nghĩa là các đối tượng không thay đổi giá trị và thuộc tính của chúng theo thời gian. Các đối tượng này trở thành vĩnh viễn một lần được tạo và khởi tạo, và chúng tạo thành một phần quan trọng của các cấu trúc dữ liệu được sử dụng trong Python.

    mut_list = [1, 2, 3]
      print("The list in Python",mut_list)
    mut_list[0] = 'Gurru99'
    mut_list
      print("The list in Python after changing value",mut_list)
    

    Output:

    The list in Python [1, 2, 3]
    The list in Python after changing value ['Gurru99', 2, 3]
    

    Python được sử dụng trong các số, bộ dữ liệu, chuỗi, bộ đóng băng và các lớp do người dùng xác định với một số ngoại lệ. Họ không thể thay đổi, và giá trị của chúng và nó vẫn là vĩnh viễn một khi chúng được khởi tạo và do đó được gọi là bất biến.

    Trong ngôn ngữ lập trình Python, mọi thứ có thể được coi là một đối tượng bao gồm danh sách, số nguyên và chức năng. Tính năng này có thể được so sánh với các ngôn ngữ lập trình khác hỗ trợ các đối tượng.

    Các đối tượng bất biến trong Python có thể được định nghĩa là các đối tượng không thay đổi giá trị và thuộc tính của chúng theo thời gian. Các đối tượng này trở thành vĩnh viễn một lần được tạo và khởi tạo, và chúng tạo thành một phần quan trọng của các cấu trúc dữ liệu được sử dụng trong Python.

    Traceback (most recent call last):
      File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
        message[0] = 'p'
    TypeError: 'str' object does not support item assignment
    0

    Python được sử dụng trong các số, bộ dữ liệu, chuỗi, bộ đóng băng và các lớp do người dùng xác định với một số ngoại lệ. Họ không thể thay đổi, và giá trị của chúng và nó vẫn là vĩnh viễn một khi chúng được khởi tạo và do đó được gọi là bất biến.

    Traceback (most recent call last):
      File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
        message[0] = 'p'
    TypeError: 'str' object does not support item assignment
    1

    Trong ngôn ngữ lập trình Python, mọi thứ có thể được coi là một đối tượng bao gồm danh sách, số nguyên và chức năng. Tính năng này có thể được so sánh với các ngôn ngữ lập trình khác hỗ trợ các đối tượng.

    Hướng dẫn what are immutable in python? - những gì là bất biến trong python?

    Các vật thể bất biến trong Python

    Ý nghĩa đối với các khóa từ điển trong Python

    Ngoại lệ trong tính bất biến

    Các đối tượng bất biến trong Python có thể được định nghĩa là các đối tượng không thay đổi giá trị và thuộc tính của chúng theo thời gian. Các đối tượng này trở thành vĩnh viễn một lần được tạo và khởi tạo, và chúng tạo thành một phần quan trọng của các cấu trúc dữ liệu được sử dụng trong Python.

    Traceback (most recent call last):
      File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
        message[0] = 'p'
    TypeError: 'str' object does not support item assignment
    2

    Python được sử dụng trong các số, bộ dữ liệu, chuỗi, bộ đóng băng và các lớp do người dùng xác định với một số ngoại lệ. Họ không thể thay đổi, và giá trị của chúng và nó vẫn là vĩnh viễn một khi chúng được khởi tạo và do đó được gọi là bất biến.

    Traceback (most recent call last):
      File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
        message[0] = 'p'
    TypeError: 'str' object does not support item assignment
    3

    Trong ngôn ngữ lập trình Python, mọi thứ có thể được coi là một đối tượng bao gồm danh sách, số nguyên và chức năng. Tính năng này có thể được so sánh với các ngôn ngữ lập trình khác hỗ trợ các đối tượng.

    • Tính năng này có thể được xác minh bằng trình thông dịch Python như được hiển thị bên dưới: -
    • Mã Python:
    • Hơn nữa, Python cung cấp một hàm tích hợp có tên ID trả về địa chỉ đối tượng như hiện diện trong bộ nhớ của ngôn ngữ lập trình Python.
    • Trong mã trên, hàm ID có cú pháp dưới dạng ID (obj) & nbsp; cung cấp địa chỉ của & nbsp; obj & nbsp; trong bộ nhớ python. Ở đây, có một đối tượng có tên Z và nó có gán 200. Đối tượng Z sau đó được chuyển vào hàm ID dưới dạng ID (Z) và Python cung cấp địa chỉ đối tượng của đối tượng là 9795360.

    Trong một đối tượng có thể thay đổi, giá trị của đối tượng thay đổi trong một khoảng thời gian.

    Hướng dẫn what are immutable in python? - những gì là bất biến trong python?

    Trong ví dụ này, chúng tôi đã giải thích các đối tượng có thể thay đổi trong Python và điều này sử dụng danh sách như một ứng dụng của các đối tượng có thể thay đổi như được hiển thị bên dưới: -

    Hướng dẫn what are immutable in python? - những gì là bất biến trong python?

    Mã Python:

    Ý nghĩa đối với các khóa từ điển trong Python

    Ngoại lệ trong tính bất biến

    Các đối tượng có thể thay đổi so với bất biến

    Các loại dữ liệu bất biến Python

    Traceback (most recent call last):
      File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
        message[0] = 'p'
    TypeError: 'str' object does not support item assignment
    4

    Các đối tượng bất biến trong Python có thể được định nghĩa là các đối tượng không thay đổi giá trị và thuộc tính của chúng theo thời gian. Các đối tượng này trở thành vĩnh viễn một lần được tạo và khởi tạo, và chúng tạo thành một phần quan trọng của các cấu trúc dữ liệu được sử dụng trong Python.

    Python được sử dụng trong các số, bộ dữ liệu, chuỗi, bộ đóng băng và các lớp do người dùng xác định với một số ngoại lệ. Họ không thể thay đổi, và giá trị của chúng và nó vẫn là vĩnh viễn một khi chúng được khởi tạo và do đó được gọi là bất biến.

    • Trong ngôn ngữ lập trình Python, mọi thứ có thể được coi là một đối tượng bao gồm danh sách, số nguyên và chức năng. Tính năng này có thể được so sánh với các ngôn ngữ lập trình khác hỗ trợ các đối tượng.
    • Tính năng này có thể được xác minh bằng trình thông dịch Python như được hiển thị bên dưới: -
    • Bây giờ giả sử rằng giá trị của ‘A, được thêm vào với 5 và 7, đây là chìa khóa cho từ điển.a’ is appended with 5 and 7, which is a key for the dictionary.
    • Sau đó, từ điển đã bị đột biến, và nó sẽ cung cấp cho cả ‘x, và’ y, là giá trị cho từ điển trên.‘x’ and ‘y’ as values for the above dictionary.

    Hãy xem xét các kịch bản sau đây như minh họa ở trên: -

    Traceback (most recent call last):
      File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
        message[0] = 'p'
    TypeError: 'str' object does not support item assignment
    5

    Do đó, như một ngôn ngữ lập trình, Python tạo ra các khóa của từ điển bất biến và từ điển là các loại dữ liệu bất biến.

    Ngoại lệ trong tính bất biến

    Tuy nhiên, Python cung cấp các ngoại lệ đối với tính bất biến các ngoại lệ như vậy có thể được quan sát cho loại đối tượng tuple. Một tuple có thể là sự kết hợp của các loại đối tượng có thể thay đổi và bất biến. Chúng ta hãy lấy một ví dụ để giải thích các ngoại lệ trong tính bất biến như hình dưới đây: -

    Mã Python:

    Traceback (most recent call last):
      File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
        message[0] = 'p'
    TypeError: 'str' object does not support item assignment
    6

    Output:

    Traceback (most recent call last):
      File "/home/ff856d3c5411909530c4d328eeca165b.py", line 3, in 
        message[0] = 'p'
    TypeError: 'str' object does not support item assignment
    7

    Bạn có thể thấy trong mã trên, phần tử đầu tiên, là một danh sách, là có thể thay đổi, trong khi bộ tuple là bất biến. Giá trị của tuple không thể thay đổi, nhưng nội dung của danh sách có bên trong bộ tuple có thể thay đổi giá trị của nó.

    Do đó, điều này làm tăng một ngoại lệ rằng các đối tượng bất biến không thay đổi giá trị của chúng, nhưng giá trị của các thành phần thay đổi giá trị của chúng.

    Các đối tượng có thể thay đổi so với bất biến

    Dưới đây là những khác biệt lớn giữa các đối tượng có thể thay đổi và bất biến:

    Đối tượng đột biến Đối tượng bất biến
    Trạng thái đối tượng có thể được thay đổi sau khi được tạoTrạng thái đối tượng không thể được thay đổi sau khi tạo
    Các đối tượng có thể thay đổi không được coi là an toàn chủ đề trong tự nhiên.Các đối tượng bất biến được coi là an toàn chủ đề trong tự nhiên.
    Các đối tượng có thể thay đổi không được thực hiện cuối cùng và do đó lập trình viên có thể tiếp tục thay đổi các đối tượng có thể thay đổi và sử dụng cùng một đối tượng.Điều quan trọng là làm cho các lớp học cuối cùng khi có sự tạo ra đối tượng bất biến

    Các loại dữ liệu bất biến Python:

    Lớp Giải trình Bất biến hay không
    BoolGiá trị booleanBất biến
    IntGiá trị số nguyên (độ lớn có thể là tùy ý)Bất biến
    IntGiá trị số nguyên (độ lớn có thể là tùy ý)Bất biến
    IntGiá trị số nguyên (độ lớn có thể là tùy ý)Trôi nổi
    Số điểm nổiDanh sáchBất biến
    IntGiá trị số nguyên (độ lớn có thể là tùy ý)Bất biến
    IntGiá trị số nguyên (độ lớn có thể là tùy ý)Trôi nổi
    Số điểm nổiDanh sáchBất biến
    IntGiá trị số nguyên (độ lớn có thể là tùy ý)Trôi nổi

    Những loại nào là bất biến trong Python?

    Các loại dữ liệu bất biến là các loại, giá trị của chúng không thể được sửa đổi sau khi chúng được tạo ra. Ví dụ về các loại dữ liệu bất biến là int, str, bool, float, tuple, v.v.int, str, bool, float, tuple, etc.

    Python có thể thay đổi và bất biến là gì?

    Sự khác biệt giữa có thể thay đổi và bất biến trong Python: trong ngôn ngữ lập trình Python, bất cứ khi nào trạng thái bên trong của có thể tính phí, đối tượng đó được gọi là một đối tượng có thể thay đổi.Vì vậy, bất cứ khi nào đối tượng trải qua một sự thay đổi trạng thái bên trong, nó được gọi là có thể thay đổi và nếu không thì nó được gọi là một đối tượng bất biến.

    Ví dụ và bất biến là gì?

    Các đối tượng bất biến là các đối tượng có giá trị không thể thay đổi sau khi khởi tạo.Chúng ta không thể thay đổi bất cứ điều gì một khi đối tượng được tạo.Ví dụ, các đối tượng nguyên thủy như int, long, float, gấp đôi, tất cả các lớp kế thừa, lớp trình bao bọc, lớp chuỗi, v.v. Tóm lại, bất biến có nghĩa là không thể sửa đổi hoặc không thể thay đổi.objects whose value can not be changed after initialization. We can not change anything once the object is created. For example, primitive objects such as int, long, float, double, all legacy classes, Wrapper class, String class, etc. In a nutshell, immutable means unmodified or unchangeable.

    Điều gì là thay đổi và bất biến với ví dụ?

    Các đối tượng trong đó bạn có thể thay đổi các trường và trạng thái sau khi đối tượng được tạo được gọi là các đối tượng có thể thay đổi.Ví dụ: Java.... Sự khác biệt giữa có thể thay đổi và bất biến trong Java là gì ?.