Pythonдогу өзгөрмөлөр кандай түзүлгөн?
sobes.tech AI
AIден жооп
Pythonдеги өзгөрмөлөр — бул маалыматтардын контейнерлери эмес, көбүнчө белгилер же аталыштар болуп саналат, алар эс тутумдагы объекттерге шилтеме кылышат.
Эгер сиз өзгөрмөгө маанини белгилесеңиз, анда сиз ошол маанини көчүрбөйсүз, тескерисинче, бар же түзүлүп жаткан объектке шилтеме түзөсүз.
Негизги түшүнүктөр:
- Өзгөрмө аттары: Алар тамгалардан (латиница), сандардан жана асты белгиленгенден турушу мүмкүн. Сан менен баштай албайт. Регистри сезимтал.
- Объекттер: Pythonдеги бардык нерсе объект. Ар бир объекттин түрү, мааниси жана идентификатору (эс тутумдагы дареги) бар.
- Шилтемелер: Өзгөрмө объекттин идентификаторуна шилтеме сактайт.
Мисал:
# 100 маанисин камтыган int объект түзүп, анын идентификаторун 'a' деп белгилөө
a = 100
# 'b' азыр ошол эле объектке шилтеме кылат, мааниси 100
b = a
# 200 маанисин камтыган жаңы int объект түзүп, анын идентификаторун 'a' деп белгилөө
a = 200
Бул мисалда, a = 200 болгондон кийин, a жаңы объектке шилтеме кылат, ал эми b дагы эле 100 объектине шилтеме кылат.
- Динамикалык түрлөрү: Өзгөрмөнүн түрү ал шилтеме кылган объекттин түрүнө жараша аныкталат жана ишке ашыруу учурунда өзгөрүшү мүмкүн.
# 'x' өзгөрмөсү int объектине шилтеме кылат
x = 10
# Эми 'x' өзгөрмөсү str объектине шилтеме кылат
x = "hello"
-
Көчүрүү жыйноо: Эгер объектке шилтемелер жок болсо, Python автоматтык түрдө ошол объектке бөлүнгөн эс тутумду бошотот, жыйноо механизми аркылуу.
-
Өзгөрүлбөгөн (immutable) жана өзгөрүлүүчү (mutable) объекттер:
- Өзгөрүлбөгөн: Сандар, саптар, кортеждер. Мындай объектти "өзгөртүү" аракетинде жаңы объект түзүлөт.
- Өзгөрүлүүчү: Тизмелер, сөздүктөр, жыйнактар. Алардын мазмунун өзгөртүүгө болот, жаңы объект түзбөстөн.
# Өзгөрүлбөгөн str объект
s = "world"
# Жаңы str объект түзүлөт "hello world", `s` ошолго шилтеме кылат
s = "hello " + s
# Өзгөрүлүүчү list объект
l = [1, 2, 3]
# Бар объекттин мазмуну өзгөртүлөт
l.append(4)
Ошентип, Pythonдеги өзгөрмөлөр — бул маалыматтар менен иштөө үчүн ийкемдүү жана күчтүү инструменттер, алар объекттерге шилтемелер аркылуу иштейт.