从python交互式会话中,是否有一种方法可以在with语句中进入REPL循环?
通常,with语句作为单个块执行。
>>>
>>> with app.app_context():
>>> ... # Normally this is executed as a single block, all at once我希望能够在交互会话中在上下文中运行代码。
>>>
>>> with app.app_context():
>>> # do stuff here in a REPL loop发布于 2016-04-08 22:32:50
一个功能齐全的REPL,用于非常简单的输入(即没有变量声明),并使用Python2.7中的contextmanager:
from contextlib import contextmanager
import sys
class app(object):
@contextmanager
def app_context(self):
sys.stdout.write(">>> ")
yield raw_input()
with app().app_context() as output:
while True:
print eval(output)
output = app().app_context().__enter__()这将需要一些工作来处理任何更复杂的事情-- eval是一个眼线,除了^C之外没有什么好的方法来打破循环--但是它应该能工作。
https://stackoverflow.com/questions/36510225
复制相似问题