Pythonni mustaqil


-bob: with…as – kontekst menejeri



Download 2,79 Mb.
bet44/109
Sana31.12.2021
Hajmi2,79 Mb.
#223336
1   ...   40   41   42   43   44   45   46   47   ...   109
Bog'liq
PYTHONNI MUSTAQIL O‘RGANAMIZ

24-bob: with…as – kontekst menejeri
with…as konstruksiyasi kontekst menejeri tomonidan ko‘rsatmalar blokining bajarilishi jarayonini qamrab olish uchun ishlatiladi. Ba’zida bu konstruksiyadan foydalanish try/except/finally dan ko‘ra samaraliroq bo‘lishi mumkin.

with…as konstruksiyasining sintaksisi:


"with" expression ["as" target] ("," expression ["as" target])* ":"
suite
Endi esa ushbu blokning bajarilisih jarayoni haqida batafsil to‘xtalib o‘tamiz:


  1. with…as konstruksiyasidagi ko‘rsatma bajariladi;




  1. keyinchalik foydalanish uchun __exit__maxsus metodi yuklanadi;




  1. __enter__ metodi bajariladi. Agar with konstruksiyasining tarkibida as so‘zi mavjud bo‘lsa, u holda __enter__ metodi tomonidan qaytariladigan qiymat o‘zgaruvchiga yoziladi;




  1. suite amalga oshiriladi;




  1. __exit__ metodiga murojaat qilinadi. Bu yerda suite bajarilganligi yoki noodatiy holat yu-zaga kelganligi ahamiyatsiz. Bu metodga, agar noodatiy holat yuzaga kelgan bo‘lsa, uning parametrlari, agar yuzaga kelmagan bo‘lsa, barcha argumentlarda None qiymati beriladi.

Agar with…as konstruksiyasining tarkibida bir necha ko‘rsatma keltirilgan bo‘lsa, u holda ular bir necha ichma-ich joylashtirilgan ko‘rsatmalar bilan teng kuchli hisoblanadi:



with A() as a, B() as b:


suite
hamda:
with A() as a:
with B() as b:
suite
dastur qismlari o‘zaro ekvivalent (teng kuchli) hisoblanadi.
with…as konstruksiyasi nima uchun qo‘llaniladi? – Bajarilishi o‘ta muhim bo‘lgan funksiyalar har qanday holatda ham kafolatlangan tarzda bajarilishini nazorat qilish uchun. Ushbu konstruksi-yadan foydalanishning eng keng tarqalgan holatlaridan biri bu – fayllarni ochish jarayoni. Biz av-valgi boblarimizda open funksiyasi yordamida fayllarni ochish jarayoni bilan tanishgan edik, lekin with…as konstruksiyasi bu amal uchun ko‘proq qo‘llaniladigan konstruksiya bo‘lib, undan foydala-nilganda har qanday holatda ham yakunida faylning yopilishini kafolatlashi bilan farq qiladi.

Masalan:

with open('newfile.txt', 'w', encoding='utf-8') as g:
d = int(input())
print('1 / {} = {} '.format(d, 1 / d), file=g)


71

Bunday holatda foydalanuvhci tomonidan nima kiritilsa ham, yakunida faylning aniq yopilishiga shubha qilmasangiz ham bo‘ladi.



72




Download 2,79 Mb.

Do'stlaringiz bilan baham:
1   ...   40   41   42   43   44   45   46   47   ...   109




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2025
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish