Junior — Middle
Чӣ тавр хосияти беҷоишии сатрҳо дар Python аст ва чаро онҳо пас аз эҷод кардан тағир дода намешаванд?
sobes.tech AI
Ҷавоб аз AI
Дар Python низҳо иммутабил (immutable) объектҳо мебошанд. Ин маъно дорад, ки пас аз сохтани низ, мундариҷаи он тағир дода намешавад.
Сабабҳои ин хусусият:
- Оптимизатсияи хотира ва иҷроиш. Иммутабилӣ имкон медиҳад, ки низҳоро интернировать — як нусхаи ягонаи низҳои якхела дар хотира нигоҳ дошта шавад, ки захираҳоро сарфа мекунад.
- Бехатарӣ ва пешгӯӣ. Агар низҳо тағир дода нашаванд, ин аз тағироти тасодуфӣ ё номувофиқи маълумотҳо пешгирӣ мекунад, махсусан ҳангоми интиқоли низҳо байни функсияҳо.
Масалан, кӯшиши тағир додани аломат дар низ мустақим:
s = "hello"
s[0] = 'H' # Хатогӣ TypeError: 'str' object does not support item assignment
Барои тағир додани низ, бояд як нав созем:
s = "hello"
s = 'H' + s[1:] # Акнун s == "Hello"
Бинобар ин, дар Python низҳо ҳамчун объектҳои иммутабил амалӣ карда шудаанд, то самаранокӣ ва бехатарии коди бештар шавад.