Mutable ಮತ್ತು Immutable ಡೇಟಾ ಟೈಪ್ಸ್
ಪೈಥಾನ್ನಲ್ಲಿ, ಡೇಟಾ ಟೈಪ್ಗಳನ್ನು ಅವುಗಳ ಮೌಲ್ಯವನ್ನು ರಚಿಸಿದ ನಂತರ ಬದಲಾಯಿಸಬಹುದೇ ಅಥವಾ ಇಲ್ಲವೇ ಎಂಬುದರ ಆಧಾರದ ಮೇಲೆ ಎರಡು ಮುಖ್ಯ ಗುಂಪುಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ: Mutable (ಬದಲಾಯಿಸಬಹುದಾದ) ಮತ್ತು Immutable (ಬದಲಾಯಿಸಲಾಗದ).
Immutable (ಬದಲಾಯಿಸಲಾಗದ) ಡೇಟಾ ಟೈಪ್ಸ್
ಒಂದು Immutable ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ಒಮ್ಮೆ ರಚಿಸಿದ ನಂತರ, ಅದರ ಮೌಲ್ಯವನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನೀವು ಅದರ ಮೌಲ್ಯವನ್ನು ಬದಲಾಯಿಸಲು ಪ್ರಯತ್ನಿಸಿದರೆ, ಪೈಥಾನ್ ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ.
Immutable ಡೇಟಾ ಟೈಪ್ಗಳು:
- int (Integer)
- float (Float)
- str (String)
- tuple (ಟ್ಯೂಪಲ್)
- bool (Boolean)
- frozenset
ಉದಾಹರಣೆ 1: String (str)
my_string = "ಹಲೋ"
print(f"ಮೂಲ ಸ್ಟ್ರಿಂಗ್: {my_string}")
print(f"ಮೂಲ ID: {id(my_string)}")
# ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಪ್ರಯತ್ನಿಸೋಣ
my_string = my_string + " ವಿಶ್ವ!" # ಇಲ್ಲಿ ಹೊಸ ಸ್ಟ್ರಿಂಗ್ ಆಬ್ಜೆಕ್ಟ್ ರಚನೆಯಾಗುತ್ತದೆ
print(f"ಹೊಸ ಸ್ಟ್ರಿಂಗ್: {my_string}")
print(f"ಹೊಸ ID: {id(my_string)}") # ID ಬದಲಾಗಿದೆ, ಅಂದರೆ ಇದು ಹೊಸ ಆಬ್ಜೆಕ್ಟ್
# ನೇರವಾಗಿ ಅಕ್ಷರ ಬದಲಾಯಿಸಲು ಪ್ರಯತ್ನಿಸಿದರೆ ಎರರ್ ಬರುತ್ತದೆ
# my_string[0] = "H" # TypeError: 'str' object does not support item assignment
ಉದಾಹರಣೆ 2: Tuple
my_tuple = (1, 2, 3)
print(f"ಮೂಲ ಟ್ಯೂಪಲ್: {my_tuple}")
# ಟ್ಯೂಪಲ್ನ ಅಂಶವನ್ನು ಬದಲಾಯಿಸಲು ಪ್ರಯತ್ನಿಸಿದರೆ ಎರರ್ ಬರುತ್ತದೆ
# my_tuple[0] = 10 # TypeError: 'tuple' object does not support item assignment
Mutable (ಬದಲಾಯಿಸಬಹುದಾದ) ಡೇಟಾ ಟೈಪ್ಸ್
ಒಂದು Mutable ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ರಚಿಸಿದ ನಂತರ, ಅದರ ಮೌಲ್ಯವನ್ನು (ಅಂಶಗಳನ್ನು) ಬದಲಾಯಿಸಬಹುದು. ಹೀಗೆ ಮಾಡಿದಾಗ ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ ರಚನೆಯಾಗುವುದಿಲ್ಲ, ಬದಲಿಗೆ ಅದೇ ಆಬ್ಜೆಕ್ಟ್ನಲ್ಲೇ ಬದಲಾವಣೆಗಳಾಗುತ್ತವೆ.
Mutable ಡೇಟಾ ಟೈಪ್ಗಳು:
- list (ಪಟ್ಟಿ)
- dict (ಡಿಕ್ಷನರಿ)
- set (ಸೆಟ್)
ಉದಾಹರಣೆ 1: List
my_list = [10, 20, 30]
print(f"ಮೂಲ ಪಟ್ಟಿ: {my_list}")
print(f"ಮೂಲ ID: {id(my_list)}")
# ಪಟ್ಟಿಯ ಅಂಶವನ್ನು ಬದಲಾಯಿಸೋಣ
my_list[0] = 100
my_list.append(40)
print(f"ಬದಲಾದ ಪಟ್ಟಿ: {my_list}")
print(f"ಬದಲಾದ ನಂತರದ ID: {id(my_list)}") # ID ಬದಲಾಗಿಲ್ಲ, ಅಂದರೆ ಅದೇ ಆಬ್ಜೆಕ್ಟ್ನಲ್ಲೇ ಬದಲಾವಣೆಯಾಗಿದೆ
ಉದಾಹರಣೆ 2: Dictionary
my_dict = {"name": "ರವಿ", "age": 25}
print(f"ಮೂಲ ಡಿಕ್ಷನರಿ: {my_dict}")
# ಡಿಕ್ಷನರಿಯ ಮೌಲ್ಯವನ್ನು ಬದಲಾಯಿಸೋಣ
my_dict["age"] = 26
my_dict["city"] = "ಬೆಂಗಳೂರು" # ಹೊಸ ಕೀ-ಮೌಲ್ಯ ಜೋಡಿ ಸೇರಿಸುವುದು
print(f"ಬದಲಾದ ಡಿಕ್ಷನರಿ: {my_dict}")
ಸಾರಾಂಶ
| ಗುಣಲಕ್ಷಣ | Immutable | Mutable |
|---|---|---|
| ಅರ್ಥ | ಮೌಲ್ಯವನ್ನು ಬದಲಾಯಿಸಲಾಗದು | ಮೌಲ್ಯವನ್ನು ಬದಲಾಯಿಸಬಹುದು |
| ಉದಾಹರಣೆಗಳು | int, float, str, tuple, bool |
list, dict, set |
| ಕಾರ್ಯಕ್ಷಮತೆ | ವೇಗವಾಗಿರುತ್ತವೆ (ಮೌಲ್ಯ ಸ್ಥಿರ) | ನಿಧಾನವಾಗಿರುತ್ತವೆ (ಮೌಲ್ಯ ಬದಲಾಗಬಹುದು) |
| ಬಳಕೆ | ಸ್ಥಿರ ಮೌಲ್ಯಗಳು ಬೇಕಾದಾಗ (ಉದಾ: ಡಿಕ್ಷನರಿ ಕೀ) | ಮೌಲ್ಯಗಳು ಬದಲಾಗಬೇಕಾದಾಗ (ಉದಾ: ಡೇಟಾ ಸಂಗ್ರಹ) |
ಈ ಪರಿಕಲ್ಪನೆಯು ಪೈಥಾನ್ನಲ್ಲಿ ಮೆಮೊರಿ ನಿರ್ವಹಣೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯ ದೃಷ್ಟಿಯಿಂದ ಬಹಳ ಮುಖ್ಯವಾಗಿದೆ.