Sobes.tech
Junior — Middle

Python'da kontekst menejerini aniqlash uchun qaysi kalit so'z ishlatiladi?

sobes.tech AI

AIdan javob

Python'da, kontekst menejeri belgilash uchun with kalit so'zi ishlatiladi, va o'z kontekst menejerini yaratish uchun odatda __enter__ va __exit__ metodlari sinfda qo'llaniladi.

Ammo, agar bu kontekst menejeri funksiyasini e'lon qilish bo'lsa, contextlib modulidan @contextmanager dekoratori ishlatiladi.

Sinf yordamida kontekst menejeri yaratish misoli:

class MyContextManager:
    def __enter__(self):
        print('Kontekstga kirish')
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        print('Kontekstdan chiqish')

with MyContextManager():
    print('Kontekst ichida')

@contextmanager bilan misol:

from contextlib import contextmanager

@contextmanager
def my_context():
    print('Kirish')
    yield
    print('Chiqish')

with my_context():
    print('Ichida')

Shu sababli, kontekst menejeri bilan ishlash uchun kalit so'zlar with (foydalanish uchun) va __enter__ hamda __exit__ metodlari (ta'riflash uchun) hisoblanadi.