import contextlib contextlib.nullcontext(enter_result=None)
enter_result=None
- объект менеджера контекста.enter_result
из метода __enter__
.Функция nullcontext()
модуля contextlib
возвращает менеджер контекста, который возвращает enter_result
из метода входа в контекст __enter__
или в противном случае ничего не делает.
Функция contextlib.nullcontext()
предназначена для использования в качестве замены для необязательного менеджера контекста, например:
def myfunction(arg, ignore_exceptions=False): if ignore_exceptions: # используем подавление, чтобы игнорировать все исключения. contextmanager = contextlib.suppress(Exception) else: # Не игнорируем исключения, 'contextmanager' не действует. contextmanager = contextlib.nullcontext() with contextmanager: # какой то код
Пример использования enter_result
:
def process_file(file_or_path): if isinstance(file_or_path, str): # Если строка, то откроем файл contextmanager = open(file_or_path) else: # Вызывающий отвечает за закрытие файла contextmanager = nullcontext(file_or_path) with contextmanager as file: # Выполняем работу с файлом