如何在交互模式下跳过`if __name__ =="__ main __"`

Gru*_*bel 3 python python-3.x

给出一个简单的脚本:

#!/usr/bin/env python3

if __name__ == "__main__":
    print("Hello World")
Run Code Online (Sandbox Code Playgroud)

如何在不执行if __name__ == "__main__":块的情况下将其加载到交互式解释器中?默认情况下会执行:

$ python3 -i simple-script.py
Hello World
>>> ?
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 9

不要将它作为参数传递,将其导入解释器.

$ python3
>>> import simple_script
>>>
Run Code Online (Sandbox Code Playgroud)

  • `from simple_script import*`可能更好,因为它更像`-i`. (5认同)

nne*_*neo 5

从脚本本身,您可以-i通过查看sys.flags.inspect标志来检测是否通过了:

import sys

if __name__ == '__main__':
    # code run with or without -i
    if not sys.flags.inspect:
        # code not run with -i
Run Code Online (Sandbox Code Playgroud)