我正在写一个python文件mylib.py
如果mylib.py作为脚本执行,我希望mylib.py能够根据sys.argv
执行某些操作。但如果它是从其他脚本导入的,我不希望它这样做。
如何判断我的python文件是导入还是主脚本?
(我之前看过如何做到这一点,但我忘记了。)
答案 0 :(得分:28)
if __name__ == '__main__':
# this was run as a main script
通常这段代码放在模块的底部,保持代码清洁的一种常用方法是创建一个main()
函数来完成所有工作,并且只调用条件中的那个函数
答案 1 :(得分:5)
if __name__ == '__main__':
# goes here only when module is being executed directly
包也可以包含__main__
模块,当你执行python -m foo
时执行(或执行包含包的zipfile)。
答案 2 :(得分:0)
通过使用(仅在模块以main
运行时放置要执行的语句,而不是导入)
if __name__ == "__main__":
# this was run as a main script
通常,必须在此 if '块中添加不同的语句,例如模块特定的 doctest 调用或打印语句。默认情况下(运行时) main)' __name__
'变量设置为“__main__
”,否则(如果导入)设置为__name__
变量'我会得到一个不同的值,很可能是模块的名称。