|
Bir nechta oʻzgaruvchining bitta obyektga yoʻnaltirilish holatlari
|
bet | 5/11 | Sana | 15.06.2023 | Hajmi | 0.49 Mb. | | #73375 |
Bog'liq kurs ishi. Pythonda nuqta chiziq va ranglar kkk7, Aniq va tabiiy fanlar metodikasi, Reja Xaara bazislarida spektral analiz-fayllar.org, Sanoat korxonasida marketing faoliyatini tashkil etish. Reja 1 -fayllar.org, Mavzu. Xorijda ijtimoiy pedagogikaning rivojlanish tarixi, 23-24, maruza, 7. ALLAMOV (1), 1 1 Topshiriq EKOLOGIK MADANIYAT VA BARQAROR TARAQQIYOT ASOSLARI.docx tt, test, test 2, test 3, test 4, мустакил иш биоэкология озбBir nechta oʻzgaruvchining bitta obyektga yoʻnaltirilish holatlari
Biz oʻzgaruvchilar haqida asosiy bilimlarni oldik, endi yana bir muhim qismni koʻrib chiqamiz. Bu “Garbage-Collector” bilan bogʻliq holat. Mana bu kodga diqqat qiling: a
= 5 b
= a
Bu yerda dastlab a oʻzgaruvchisi yaratildi, undan keyin 5 qiymatga ega integer turidagi obyekt yaratildi va a oʻzgaruvchisi shu obyektga bogʻlab qoʻyildi. Keyingi qatorda esa b oʻzgaruvchisi yaratilib, uning uchun alohida 5 qiymatli obyekt yaratilmasdan, tayyor turgan oldingi 5 ga bogʻlab qoʻyildi. Quyidagi rasmga diqqat qiling:
Bu yerda a va b oʻzgaruvchilari aynan bitta obyektga yoʻnaltirilgan.
Yuqoridagi kodni tushungan holda unga yana bir qator kod qoʻshamiz: a
= 5 b
= a a
= “Python
”
Bunda endi a ning qiymati “Python”, b niki esa 5 ga teng. a ning qiymatini oʻzgartirish b ga taʼsir qilmaydi bu oʻrinda.
Oʻzgaruvchan turlar bilan ishlaganda…
Bizda mutable (oʻzgaruvchan) boʻlgan list turi ham mavjudligi maʼlum. Mana bu kodga diqqatni qarating: a
= [1, 2, 3] b
= a a
[0] = 12 print
(b
)
>>> [12, 2, 3]
Ana xolos, a ni oʻzgartiruvdik, b ni ham qiymat oʻzgarib ketdi! Siz bilan yuqorida mana shunaqa holatlarda 2 ta oʻzgaruvchi ham bitta obyektga bogʻlab qoʻyilishi haqida gaplashgan edik. Mana uning isboti. a va b aynan bitta list obyektiga bogʻlab qoʻyilgan, xohlasak a orqali, xohlasak b orqali oʻsha obyektni oʻzgartira olamiz. Biroq unutmang, bu faqat mutable (oʻzgaruvchan) turdagi obyektlar uchun amal qiladi, immutable (oʻzgarmas) turdagilarida bunday emas. Demak,
Mutable (oʻzgaruvchan) turdagi obyektga bir nechta oʻzgaruvchi bogʻlanganda, bir oʻzgaruvchi orqali obyekt oʻzgartirilsa, u qolgan barcha oʻzgaruvchilarda ham aks etadi. Chunki hamma oʻzgaruvchilar uchun umumiy boʻlgan obyekt oʻzgaradi bunda.
Agar boshqa oʻzgaruvchilarga ham shu qiymatli list bermoqchi boʻlsangiz-u, lekin ular hammasi bita obyektga bogʻlanmay, har biriga alohida obyekt boʻlishini xohlasangiz, unda obyektni nusxalashingiz kerak boʻladi. Bunda Pythonning copy moduli yordam beradi.
import copy a
= [1, 2, 3] b
= copy
.copy(a
)
Listlarni mana bunday yoʻl bilan ham nusxalashingiz mumkin: a
= [1, 2,3 ] b
= a
[:]
|
| |