Contextmanager – вопросы и ответы

87
голосов
2
ответа
У меня есть пара функций python, которые в настоящее время отображают глобальную переменную между двумя значениями. Я хотел бы превратить их в менеджеров контекста, поэтому я могу использовать их к...
2 месяца, 2 недели назад David Eyk
76
голосов
2
ответа
В чем основное отличие между ними? Я изучал Питона и наткнулся на них. Декоратор по существу является функцией, которая обертывает другую функцию, и вы можете делать что-либо до и после выполнения ...
2 месяца, 2 недели назад Mithil Bhoras
86
голосов
1
ответ
Я думал, что делать @f def g(): print 'hello' точно совпадает с def g(): print 'hello' g=f(g) Но у меня был этот код, который использует contextlib.contextmanager: @contextlib.contextmanager def f(...
2 месяца, 2 недели назад olamundo
76
голосов
4
ответа
Я использую множество менеджеров контекстов как чистый способ составления различных ситуаций установки/срыва. Поскольку мои развертывания нацелены на Python 2.6, это означает использование contextl...
2 месяца, 2 недели назад JohnJ
61
голос
1
ответ
Я использую try / except чтобы проверить альтернативные источники xpath для ввода переменных из веб-сайта. Он должен будет делать это много раз, поэтому я ищу способ сократить выражение. Может быть...
2 месяца, 2 недели назад Winterflags
255
голосов
5
ответов
Я нахожу, что я использую множество менеджеров контекста в Python. Тем не менее, я тестировал несколько вещей, используя их, и мне часто нужно следующее: class MyTestCase(unittest.TestCase): def te...
2 месяца, 2 недели назад Danny Staple
87
голосов
3
ответа
Я хочу принудительно создать экземпляр объекта через контекстный менеджер классов. Таким образом, невозможно напрямую создать экземпляр. Я реализовал это решение, но технический пользователь все ещ...
2 месяца, 3 недели назад Jean Jacquemier
96
голосов
2
ответа
Учитывая список имен файлов filenames = [...] . Возможно ли переписать следующее понимание списка для безопасности ввода/вывода: [do_smth(open(filename, 'rb').read()) for filename in filenames] ? И...
2 месяца, 3 недели назад kupgov
76
голосов
2
ответа
Мой вопрос, как я могу выполнить любой менеджер контекста без использования with ? Python имеет представление о менеджерах контекста, вместо file = open('some_file', 'w') try: file.write('Hola!') f...
2 месяца, 3 недели назад luckydonald
62
голоса
1
ответ
Я столкнулся с проблемой, когда менеджер контекста открывал вызовы функций. Вот что я имею в виду: Существует контекст-менеджер, определенный в модуле, который я использую для открытия SSH-подключе...
2 месяца, 3 недели назад Pablo Lucena
75
голосов
1
ответ
Я только что увидел следующий код: from __future__ import print_function from future_builtins import map # generator with open('test.txt', 'r') as f: linegen = map(str.strip, f) # file handle shoul...
2 месяца, 3 недели назад Stefan
96
голосов
2
ответа
Рассмотрим следующий код Python: def values(): with somecontext(): yield 1 yield 2 for v in values(): print(v) break В этом случае, гарантирует ли Python, что генератор правильно закрыт и, таким об...
2 месяца, 3 недели назад Dolda2000
62
голоса
1
ответ
У меня есть регистратор, который я использую для большинства моих программ, которые я установил при logging.INFO . logging.INFO . Это для меня кажется наиболее разумным, поскольку материал, который...
2 месяца, 3 недели назад flybonzai
106
голосов
2
ответа
Я хочу написать декоратор для некоторых функций, которые берут файл в качестве первого аргумента. Декоратор должен реализовать протокол контекстного менеджера (т.е. Превратить обернутую функцию в м...
2 месяца, 3 недели назад Lev Levitsky
114
голосов
1
ответ
Я создаю следующий NamedTemporaryFile - ## CONFIGURE DEPLOY.XPR template = open(xprpath + xprtemplatefile, 'r') joblist = open(joblistfilepath + joblistfilename, 'r') temp = NamedTemporaryFile(dele...
2 месяца, 3 недели назад whoisearth
245
голосов
2
ответа
У меня есть унаследованный код с унаследованной функцией, которая принимает имя файла в качестве аргумента и обрабатывает содержимое файла. Ниже приведен рабочий факсимильный код. То, что я хочу сд...
2 месяца, 3 недели назад mpettis
62
голоса
2
ответа
Это то, что я думаю, должно возникать довольно часто, но я не смог найти для этого хорошего решения. Скажем, у меня есть функция, которая может быть передана открытым ресурсом в качестве аргумента ...
2 месяца, 3 недели назад JaredL
87
голосов
3
ответа
Я читал, что объект __ вводит методы __() и __ exit __(), вызывается каждый раз, когда используется "with". Я понимаю, что для пользовательских объектов вы можете сами определить эти методы, но я н...
2 месяца, 4 недели назад Kyle Truong
74
голоса
1
ответ
Я пытаюсь создать оболочку, чтобы сделать объекты контекста необязательными. Когда условие истинно, предмет должен вести себя как обернутый объект контекста, иначе он должен вести себя как объект к...
3 месяца назад danijar
105
голосов
1
ответ
Рассмотрим функцию foo преобразующую строку, для примера полноты ниже: def foo(data): ### processes data in a fancy way ### return data.lower() # :P Мне было интересно, было бы хорошей идеей замени...
3 месяца назад BPL
62
голоса
1
ответ
Представьте, что у меня две нечистые функции - f и j. j генерирует список элементов в одной партии, а f генерирует список партий. У обоих есть какая-то очистка. Мне нужно сделать, чтобы обеспечить ...
3 месяца назад user1685095
75
голосов
1
ответ
Возможно ли написать однострочный файл with менеджером контекста в python? Что-то вроде: with open('xml_file.xml') as file: file.write('<fave_food>filled dhal puri roti</fave_food>')
3 месяца назад category
62
голоса
1
ответ
Я пытаюсь использовать python with-statement (также известный как менеджер контекста), чтобы убедиться, что сокет TCP-соединения, созданный server_socket.accept() , всегда закрыт. Однако очевидная ...
3 месяца назад dshepherd
106
голосов
2
ответа
Я нашел демонстрацию класса блокировки файлов (здесь: https://groups.google.com/forum/#!topic/pug-pe/mQr7KX-cenU ), но я не совсем понимаю механику его использования. @contextmanager def FileLock(l...
3 месяца назад David Doria
76
голосов
1
ответ
Я играю с менеджерами контекста и декораторами в Python и создаю класс декоратора-менеджера контекста-менеджера. У меня есть украшение функции, где я хочу изменить атрибут в классе декоратора. Здес...
3 месяца назад TheStrangeQuark
97
голосов
1
ответ
Используя Python 2.7.9, я пытаюсь определить открытие и закрытие соединений и курсоров mysql Код class MySQLCursor: def __init__(self, commit=False): self.commit = commit def __enter__(self): self....
3 месяца назад 576i
122
голоса
3
ответа
Как известно, метод python __del__ не должен использоваться для очистки важных вещей, так как не гарантируется, что этот метод вызван. Альтернативой является использование диспетчера контекста, как...
3 месяца назад Alex
201
голос
4
ответа
У нас есть код, который вызывает переменное количество менеджеров контекста в зависимости от параметров времени выполнения: from contextlib import nested, contextmanager @contextmanager def my_cont...
3 месяца назад ecatmur
62
голоса
1
ответ
Можно ли поймать исключение в менеджере контекста? Справочная информация. Метод get_data_from_remote_system() подключается к удаленной системе каждые пять минут и извлекает данные. Иногда сеть откл...
3 месяца назад guettli
87
голосов
2
ответа
Я работаю над дизайном API на основе python. На данный момент я встречал проблему с двумя разными требованиями. С одной стороны я хотел бы предоставить надежный способ очистки ресурсов, связанных с...
3 месяца назад reddot
61
голос
1
ответ
У меня есть скрипт, который создает несколько дочерних объектов. Когда скрипт (и эти объекты) заканчивается... объекты должны немного очистить (особенно временный файл закрыть и удалить). Я продолж...
3 месяца назад RightmireM
131
голос
3
ответа
Python учит нас делать очистку объектов с помощью __enter__ и __exit__ . Что делать, если мне нужно создать объект, который использует объекты, должен использовать контекстные менеджеры? Представьт...
3 месяца, 1 неделя назад user37203
98
голосов
1
ответ
С этим кодом я надеюсь, что он должен сразу напечатать "войти", затем спать, а затем распечатать "exit". Но он делает все это за один раз. Как я могу заставить его работать? И прямо сейчас он блоки...
3 месяца, 1 неделя назад arvidurs
62
голоса
1
ответ
Я попытался запутаться с менеджерами контекста и немного удивился при запуске моего кода с Python 2.6. Действительно, параметр exc_value кажется строкой вместо исключения. Немного кода, чтобы приве...
3 месяца, 1 неделя назад Josay
97
голосов
1
ответ
Когда вы используете java Hibernate & Spring framework, есть менеджер транзакций, который мы можем настроить некоторые правила транзакций, тогда нам не нужно писать материал "commit, flush, rol...
1 год назад Tyron Fong
62
голоса
1
ответ
У меня есть какой-то существующий код, написанный в следующем стиле, и он работает так, как ожидалось, я могу использовать chunkUndo в качестве контекстных менеджеров. from contextlib import contex...
1 год назад Shuman
87
голосов
1
ответ
У меня есть класс, который преобразует исключения на низком уровне, поднятые API на высокоуровневые. Класс заполнен сложной, дублированной логикой обработки ошибок. Я ищу питоновский способ уменьши...
1 год назад lacton
75
голосов
2
ответа
Мой код python выглядит примерно так: try: statement1 statement2 statement3 except Exception: handleException Проблема в том, что если statement3 создает исключение, эффекты statement1 и statement2...
1 год назад Ankush Jain
62
голоса
1
ответ
Я работаю в скрипте python (окна), чтобы удаленно выполнить (другой) скрипт на сервере linux. Мне нужно изменить каталог и сохранить состояние для выполнения сценария, и после исследования я обнару...
1 год назад Sora
97
голосов
1
ответ
В моем коде мне нужно иметь возможность открывать и закрывать устройство должным образом и, следовательно, видеть необходимость использования диспетчера контекстов. Хотя диспетчер контекста обычно ...
1 год назад Alex
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема