python:如何判断文件是作为导入还是主脚本执行的?

Jas*_*n S 12 python import

我正在写一个python文件 mylib.py

我希望mylib.py根据sys.argv它是否作为脚本执行来做某事.但如果它是从其他脚本导入的,我不希望它这样做.

如何判断我的python文件是否正在导入或者它是一个主脚本?

(我以前见过这个怎么做,但我忘了.)

And*_*ark 29

if __name__ == '__main__':
    # this was run as a main script
Run Code Online (Sandbox Code Playgroud)

这是关于的文档__main__.

通常这段代码放在模块的底部,保持代码清洁的一种常用方法是创建一个main()完成所有工作的函数,并且只调用条件中的那个函数.


Cat*_*lus 5

if __name__ == '__main__':
    # goes here only when module is being executed directly
Run Code Online (Sandbox Code Playgroud)

包也可以包含__main__模块,当你执行python -m foo(或执行包含包的zipfile)时执行.