У меня вопрос, как я могу запустить любой диспетчер контекста без использования with
?
В Python есть идея диспетчеров контекста,
вместо того
file = open('some_file', 'w')
try:
file.write('Hola!')
finally:
file.close()
# end try
ты можешь написать
with open('some_file', 'w') as opened_file:
opened_file.write('Hola!')
# end with
В то время как в большинстве случаев второй вариант является идеальным решением для тестирования и изучения в интерактивной консоли, первое может быть гораздо лучше использовано, так как вы можете писать его построчно.
>>> file = open('some_file', 'w')
>>> file.write('Hola!')
>>> file.close()
Мой вопрос в том, как я могу выполнить любой with
диспетчер контекста, подобный этому, который лучше всего подходит для изучения?
Мой фактический вариант использования приведен ниже, но попробуйте дать общий ответ, который будет работать и для других менеджеров контекста.
import flask
app = flask.Flask(__name__)
with app.test_request_context('/?name=Peter'):
assert flask.request.path == '/'
assert flask.request.args['name'] == 'Peter'