1. Python tili imkoniyatlari Pythonni ko`chirish


With … as – kontekst menedjeri



Yüklə 2,19 Mb.
səhifə39/78
tarix19.12.2023
ölçüsü2,19 Mb.
#152124
1   ...   35   36   37   38   39   40   41   42   ...   78
1. Python tili imkoniyatlari Pythonni ko`chirish

With … as – kontekst menedjeri


With … as konstruksiyasi kontekst menedjeri tomonidan ko`rsatmalar blokining bajarilishi jarayonini qamrab olish uchun ishlatiladi. Ba`zida bu usuldan 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.

  2. Keyinchalik foydalanish uchun __exit__maxsus metodi yuklanadi.

  3. __enter__ metodi bajariladi. Agar with konstruksiyasining tarkibida as so`zi bor bo`lsa, u holda, __enter__ metodi tomonidan qaytaraladigan qiymat o`zgaruvchiga yoziladi.

  4. suite amalga oshiriladi.

  5. __exit__ metodiga murojaat qilinadi hamda bu yerda suite bajarilganligi yoki noodatiy holat yuzaga kelganligi ahamiyatsizdir. Bu metodga agar noodatiy holat yuzaga kelgan bo`lsa, uning parametrlari, agar u yuzaga kelgan bo`lmasa, barcha argumentlarda None qiymati beriladi.


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

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


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 konstruksiyadan foydalanishning eng keng tarqalgan holatlaridan biri – bu fayllarni ochish jarayonidir. Biz oldingi boblarimizda open funksiyasi yordamida fayllarni ochish jarayoni bilan tanishgan edik, lekin with … as konstruksiyasi bu amal uchun ko`proq qo`llailadigan konstruksiya bo`lib, undan foydalanilganda har qanday holatda ham yakunda faylning yopilishini kafolatlashi bilan farq qiladi.

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

Masalan:
Va bu holatda siz foydalanuvhci tomonidan nima kiritilgan taqdirda ham faylning yakunda aniq yopilishiga shubha qilmasangiz ham bo`ladi.


25-bob


Yüklə 2,19 Mb.

Dostları ilə paylaş:
1   ...   35   36   37   38   39   40   41   42   ...   78




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə