code.InteractiveInterpreter.runsource(source) 为什么不能执行多行代码?

2016-07-07 01:54:24 +08:00
 oglop

以下是从python2.7的 code.py 里复制出来的, 为什么 x=2 没执行到?

filename="<input>"
symbol="single"
from codeop import CommandCompiler, compile_command
compile = CommandCompiler()

x=3
print 'before:',x
code = compile('x=4\nx=2', filename, symbol)
exec code
print 'after:',x

结果是:

before: 3
after: 4

source如果有多行,正确格式应该是什么?

2004 次点击
所在节点    Python
1 条回复
oglop
2016-07-07 02:30:44 +08:00
我错了,没有仔细看帮助 . orz
https://docs.python.org/2/library/functions.html#compile

symbol = 'exec'
即可

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/290771

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX