Sobes.tech
Junior — Middle

Калидвожаи калидвожаи Python барои муайян кардани менеджери контекст чӣ аст?

sobes.tech AI

Ҷавоб аз AI

Дар Python, барои муайян кардани менеджери контекст, калиди калид with дар вақти истифодааш истифода мешавад, ва барои сохтани менеджери контексти худ одатан методҳои __enter__ ва __exit__ дар синф истифода мешаванд.

Аммо, агар дар бораи эълони функсияи менеджери контекст сухан равад, декоратори @contextmanager аз модул contextlib истифода мешавад.

Масали сохтани менеджери контекст бо истифода аз синф:

class MyContextManager:
    def __enter__(self):
        print('Ворид шудан ба контекст')
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        print('Баромадан аз контекст')

with MyContextManager():
    print('Дар дохили контекст')

Масали бо истифода аз @contextmanager:

from contextlib import contextmanager

@contextmanager
def my_context():
    print('Ворид')
    yield
    print('Баромад')

with my_context():
    print('Дар дохили')

Аз ин рӯ, калидвожаҳо барои кор бо менеджерҳои контекст with (барои истифода) ва методҳои __enter__ ва __exit__ (барои муайян кардан) мебошанд.