Immutable objects trong Python là các đối tượng không thể thay đổi sau khi chúng đã được tạo ra. Khi bạn làm việc với các đối tượng immutable, bất kỳ thao tác nào cố gắng thay đổi đối tượng đó sẽ tạo ra một bản sao mới thay vì thay đổi trực tiếp đối tượng gốc. Điều này có thể giúp tránh những sai sót và cải thiện hiệu suất trong một số tình huống.
Tuple là một kiểu dữ liệu tương tự như danh sách (list), nhưng không thể thay đổi sau khi tạo. Ví dụ:
my_tuple = (1, 2, 3) # my_tuple[0] = 4 # Raises TypeError
String là một chuỗi ký tự không thể thay đổi. Bất kỳ thao tác nào làm thay đổi chuỗi sẽ trả về một chuỗi mới. Ví dụ:
my_string = "Hello" # my_string[0] = "h" # Raises TypeError new_string = my_string.lower() # Returns a new string
Frozenset là một tập hợp không thể thay đổi, tương tự như set, nhưng không cho phép thay đổi các phần tử bên trong. Ví dụ:
my_frozenset = frozenset([1, 2, 3]) # my_frozenset.add(4) # Raises AttributeError
Bytes là một kiểu dữ liệu tương tự như chuỗi, nhưng chứa dữ liệu nhị phân và không thể thay đổi. Ví dụ:
my_bytes = b"Hello" # my_bytes[0] = b'h' # Raises TypeError
Dưới đây là một ví dụ minh họa về immutable objects:
# Immutable object: Tuple my_tuple = (1, 2, 3) # Trying to change the tuple try: my_tuple[0] = 10 except TypeError as e: print(f"Error: {e}") # Creating a new tuple instead new_tuple = my_tuple + (4,) print(new_tuple) # Output: (1, 2, 3, 4)