Sobes.tech
Junior — Middle

Python-da öz kontekst menecerinizi həyata keçirmək üçün hansı addımlar atılmalıdır?

sobes.tech Süni İntellekt

AI-dan cavab

Python-da öz kontekst menecerinizi həyata keçirmək üçün, aşağıdakı metodları həyata keçirən obyekt müəyyən etməlisiniz:

  • __enter__(self) — kontekstə daxil olarkən çağrılır (with), as sonrası dəyişənə bağlanacaq obyektin qaytarır.
  • __exit__(self, exc_type, exc_val, exc_tb) — kontekstdən çıxarkən çağrılır, istisna haqqında məlumat alır (əgər varsa), və onu idarə etməyə və ya susdurmağa imkan verir.

Sadə kontekst menecerinin nümunəsi:

class MyContextManager:
    def __enter__(self):
        print("Kontekstə daxil olma")
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Kontekstdən çıxış")
        if exc_type:
            print(f"İstisnaya işləmə: {exc_val}")
        # İstisnayı susdurmaq üçün True qaytarırıq
        return True

with MyContextManager() as cm:
    print("with daxilində")
    raise ValueError("Xəta")  # Xəta idarə olunacaq və susdurulacaq

Həmçinin, contextlib.contextmanager dekoratorundan istifadə edərək, generator əsasında kontekst meneceri yaratmaq mümkündür, bu kodu sadələşdirir.