0

考虑以下交互式 shell 会话。

Python 2.7.5+ (default, Feb 27 2014, 19:37:08) 
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+1
2
>>> 2+5
7
>>> "foo"
'foo'
>>> 

观察每一行之后,解释器如何将结果回显到控制台。

如果我将这三个相同的命令放入Foo.py 没有打印语句的脚本中,则不会生成任何输出。

有没有办法强制 Python 解释器生成与交互模式下相同的输出,而无需修改代码以手动插入打印语句

4

1 回答 1

3
import code
console = code.InteractiveConsole()
prompt = '>>>'
source = '''
1 + 1
2+5
"foo"
x = 1
x
y = (2+
     3)
y + x     
'''.splitlines()
for line in source:
    print('{p} {l}'.format(p=prompt, l=line.rstrip()))
    prompt = '...' if console.push(line) else '>>>'

产量

>>> 
>>> 1 + 1
2
>>> 2+5
7
>>> "foo"
'foo'
>>> x = 1
>>> x
1
>>> y = (2+
...      3)
>>> y + x
6
于 2014-08-01T21:12:30.230 回答