【发布时间】:2017-06-30 04:46:43
【问题描述】:
假设test.py 有内容
i_am_a_variable = 1
i_am_also_a_var = 2
while True:
input('> ')
然后,在与test.py 相同的目录中,我运行python3。现在,在 REPL 中,我执行 from test import *。由于 Python 3 REPL 具有自动完成功能,因此变量实际上也在这个无限的input 循环中自动完成。也就是说,当我运行时
$ python3
>>> from test import *
> i_am_a|
(|代表我的光标)如果我按Tab键,好像我的光标在i_am_a行的末尾,它会自动补全到i_am_a_variable。
现在,如果我运行 python3 -i test.py,则不会发生此行为。也就是说,REPL 不会自动完成。那么当我运行python3 -i test.py 时究竟会发生什么。 test.py 是否只是运行然后globals 被复制到 REPL?
这是在 macOS 上测试的,以防自动完成在其他 python 发行版上不可用。 谢谢。
【问题讨论】:
标签: macos python-3.x read-eval-print-loop