Middle
Контекст менеджери эмне?
sobes.tech AI
AIден жооп
Python-деги контекст менеджери — бул атрибут, ал иштөө контекстин аныктайт жана ресурстарды бөлүштүрүү жана бошотуу иштерин башкарган объект. Ал __enter__ жана __exit__ деп аталган магиялык ыкмаларды камтыган контекст менеджери протоколун ишке ашырат.
__enter__: Контекстке кирүүдө чакырылат, адатта, башкарылуучу ресурсты кайтарат.__exit__: Контексттен чыгууда чакырылат, даже если исключение произошло. Ал ресурсты бошотууга жооптуу. Үч аргументти кабыл алат: исключение түрү, исключение объектиси жана стек трассасы (жеNone, эгер исключение болбосо).
Көп учурда ал with оператору менен колдонулат, мисалы, файлдар, тармактык байланыштар же блокировкалар сыяктуу ресурстарды автоматтык башкаруу үчүн.
# Файл менен иштөө үчүн контекст менеджерин колдонуу мисалы
with open('myfile.txt', 'r') as f:
content = f.read()
# Файл `with` блогунан чыккан соң автоматтык түрдө жабылат
Контекст менеджерлер протоколду ишке ашырып же @contextmanager декораторун колдонуп түзүлүшү мүмкүн contextlib модулунан.
# Декораторду колдонуп контекст менеджерин түзүү мисалы
def timer():
import time
start_time = time.time()
yield # Контекстке кирүү чекити
end_time = time.time()
print(f"Ишке ашуу убактысы: {end_time - start_time:.2f} секунд")
# Түзүлгөн контекст менеджерин колдонуу
with timer():
# Өлчөө керек код
import time
time.sleep(1)