Str*_*lok 0 python return exec python-3.x
当这段文字下面的代码,并返回结果 None 为什么?
with open('exx.py', 'rb') as file:
ff = compile(file.read(), 'exx.py', 'exec')
snip_run = exec(ff, locals())
if 'result' in locals():
print(snip_run, result)
else:
print(snip_run)
Run Code Online (Sandbox Code Playgroud)
结果:
777777
None
Run Code Online (Sandbox Code Playgroud)
模块代码 exx.py:
print('777777')
Run Code Online (Sandbox Code Playgroud)
问题当然不仅仅是print返回None,而是exec总是返回 None。
>>> exec('42') is None
True
Run Code Online (Sandbox Code Playgroud)
如果您需要返回值,您可以使用eval:
>>> eval('42')
42
Run Code Online (Sandbox Code Playgroud)
之后你会注意到print仍然返回None......
| 归档时间: |
|
| 查看次数: |
2281 次 |
| 最近记录: |