O’zgaruvchiqa qiymat o’zlashtirish
Python dasturlash tilida dinamik tiplashtirishdan foydalaniladi. Bu shuni anglatadiki, o’zgaruvchi o’zlashtirgan qiymatiga qarab interpretator avtomatik ravishda ma’lumotlar turidan biriga ajratadi. O’zgaruvchiga qiymat “=” operatori yordamida o’zlashtiriladi (beriladi). Misollar yordamida ko’ramiz:
>>> х = 7 # int tipli
>>> у= 7. 8 # float tipli
>>> sl = "Satr " # sl o’zgaruvhcisi “Satr ” qiymatini o’zlashtirdi
>>> s2 = ' Satr ' # s2 o’zgaruvhcisi ham “Satr ” qiymatini o’zlashtirdi
>>> b = True # b o’zgaruvchisi mantiqiy True qiymatini o’zlashtirdi
Bir satrda birdaniga bir nechta o’zgaruvhciga qiymat o’zlashtirish mumkin:
>>> х = у = 10
>>> х, у
(10, 10 )
Qiymat o’zlashtirilgach o’zgaruvchida obyekt emas balki, obyektga havola saqlanadi.
Buni albatta gruhli o’zlashtirishda ham hisobga olinadi. Guruxli o’zlashtiurish son, satr va kortej tiplarida qo’llanilishi mumkin, biroq o’zgaruvchan obyektlarda buni amalga oshirish mumkin emas. Masalan:
>>> х = у = [ 1 , 2 ] # Go’yoki ikkita obyekt yaratildi
>>> х, у
([1, 2], [1, 2])
Bu misolda biz ikkita elementdan iborat ro’yxat yaratdik hamda x va y o’zgaruvchilarga qiymatini o’zlashtirdik. Endi y o’zgaruvchisi qiymatini o’zgartirib ko’ramiz:
>>> y[l] = 100 # Ikkinchi elementni o’zgartirdik
>>> х, у
([1, 100] , [1, 100 ] )
Misoldan ko’rinib turibdiki, y o’zgaruvchisi qiymatining o’zgarishi x o’zgaruvchisi qiymatini o’zgarishiga ham olib kelmoqda. Demak, har ikki o’zgaruchida bitta obyektga havola ko’rsatilmoqda. Agar ikkita obyektni ko’rsatmoqchi bo’lsak guruxli oz’lashtirishdan emas, alohid ao’zlashtirishdan foydalanish kerak:
>>> х = [1, 2]
>>> у = [1, 2]
>>> y[ l] = 100 # Ikkinchi element o’zgarmoqda
>>> х, у
([1, 2], [1, 100 ] )
Ikkita o’zgaruvchi bir obyektga havola ko’rsatayorganini tekshirishga is operatori imkon beradi.
Agar o’zgaruvchilar bitta obyektga havola ko’rsatayortgan bo’lsa, is operatori True qiymatini qaytaradi:
>>> х = у = [1, 2] # bir obyekt
>>> х is у
True
>>> х = [1, 2] # turli obyekt
>>> у = [1, 2] # turli obyekt
>>> х is у
Fa lse
Interpretator kodlar samaradorligini oshirish maqsadida kichik sonlar va uzun bo’lmagan satrlarni keshlashni amalga oshiradi. Agar ikkita o’zgaruvchiga 2 sono o’zlashtirilsa, bu o’zgaruvchilar bitta obyektga havola ko’rsatadi degani. Masalan:
>>> х = 2; у = 2; z = 2
>>> х is у, у is z
(True, True)
Obyektga ko’rsatilgan havolalar miqdorini aniqlashga sys modulidagi getrefcount () metodi imkon beradi:
>>> import sys # sys modulini ulaymiz
>>> sys.getrefcount (2)
304
Qachonki obyektga havolalar soni nol ga teng bo’lib qolsa obyekt operativ xotiradan avtomatik o’chiriladi.
Do'stlaringiz bilan baham: |