Вопросы по теме 'contextmanager'

py.test — как использовать контекстный менеджер в funcarg/fixture
Тесно связаны: Есть ли в python хорошая идиома для использования контекстных менеджеров в настройке/разборке У меня есть контекстный менеджер, который используется в тестах для исправления времени/часового пояса. Я хочу, чтобы это было в...
6479 просмотров
schedule 19.09.2022

Как использовать сокет в Python в качестве менеджера контекста?
Кажется, что было бы естественно сделать что-то вроде: with socket(socket.AF_INET, socket.SOCK_DGRAM) as s: но Python не реализует диспетчер контекста для сокета. Могу ли я легко использовать его в качестве менеджера контекста, и если да, то...
20612 просмотров
schedule 31.12.2023

Fabric: работа с cd() во вспомогательных функциях
В Fabric менеджер контекста cd работает как with cd("dir"): run("command") и команда будет запущена после перехода в каталог dir . Это прекрасно работает, но проблема в том, что используется глобальное состояние. Например,...
296 просмотров
schedule 12.11.2022

Собираем контекстный менеджер Python: загадка
Я озадачен тем, как расположить все, что могут делать менеджеры контекста Python, в соответствующих местах. Насколько я понимаю, элементы, которые потенциально могут быть использованы при создании диспетчера контекста, включают: A: то, что...
886 просмотров

Менеджер контекста для проверки данных
Я пытаюсь обдумать хорошее решение этой проблемы, и ничего не приходит в голову. В качестве упражнения я пытаюсь создать диспетчер контекста, который будет обрабатывать проверку данных, например: validation = lambda x: len(x) <= 10 with...
297 просмотров
schedule 14.05.2024

Является ли оператор Python *with* точно эквивалентным блоку try - (except) - finally?
Я знаю, что это широко обсуждалось, но я до сих пор не могу найти ответ, подтверждающий это: является ли оператор with идентичным вызову того же кода в блоке try - (except) -finally, где что угодно один определяет в функции __exit__ контекстного...
5978 просмотров
schedule 13.01.2024

Определить контекстные переменные в поведении Python
Иногда вам нужно определить значения динамически (например, datetime now, случайные строки, случайные целые числа, содержимое файла и т. д.) и использовать их на разных этапах без явного или жесткого кодирования значения. Итак, мой вопрос...
7123 просмотров

Python: как правильно создавать и уничтожать ресурсы с помощью шаблона дескриптора contextmanager
Я реализую создание и уничтожение ресурсов следующим образом: import weakref class Context(object): def __init__(self): self.resource = object() # sample resource creation def __del__(self): self.resource = None #...
212 просмотров
schedule 19.05.2024

Как использовать контекстный менеджер внутри декоратора и как передать объект, созданный в декораторе, в декоративную функцию
У меня есть тестовый класс, который требует очистки в конце. Чтобы убедиться, что пользователь не забудет это сделать, я хочу добавить в класс контекстный менеджер. У меня также есть декоратор, внутри которого я хочу использовать этот менеджер...
686 просмотров

__init__ vs __enter__ в контекстных менеджерах
Насколько я понимаю, методы __init__() и __enter__() диспетчера контекста вызываются ровно один раз каждый, один за другим, не оставляя никаких шансов для выполнения какого-либо другого кода между ними. Какова цель разделения их на два метода и...
22447 просмотров
schedule 28.09.2022

TypeError: ожидается объект str, bytes или os.PathLike, а не _io.TextIOWrapper
Я пытаюсь открыть, прочитать, изменить и закрыть файл json, используя пример здесь: Как добавить ключ-значение к данным JSON, полученным из файла с помощью Python? import os import json path =...
22076 просмотров
schedule 28.11.2023