首先,python不像java、C那样,有内置好的“main函数”这样的程序入口。
一般的python程序都是从第一行开始运行,没有统一的入口。
2.一个python源文件除了可以直接运行,还可以作为模块(库)被导入。不管是导入还是直接运行,“最顶层的代码都会被运行“(这句话的意思是,由于python仅仅是靠缩进来区分代码层次,因此只要处在最顶层的代码,都会被执行)。
3.现实情况是,当我们作为模块调用的时候,有一部分代码我们是不希望被运行的。
比如(转自知乎):
# file one.py
def func():
print("func() in one.py")
print("top-level in one.py")
if__name__=="__main__":
print("one.py is being run directly")
else:
print("one.py is being imported into another module")
# file two.py
import one
print("top-level in two.py")
one.func()
if__name__=="__main__":
print("two.py is being run directly")
else:
print("two.py is being imported into another module")
如果你执行one.py文件,
python one.py
会输出:
top-level in one.py
one.py is being run directly
如果你执行two.py文件,
python two.py
会输出:
top-level in one.py
one.py is being imported into another module
top-level in two.py
func() in one.py
two.py is being run directly
Thus, when module one gets loaded, its __name__ equals "one" instead of __main__.
我就不翻译了首先我翻译的很丑其次我觉得英文更好理解。。。
它就是上面这么用的。
然后我觉得它的功能就是,让if __name__ == '__main__'它后面的代码不执行。这样代码运行会更简洁更流畅???因为只需要用想用的那部分就行了。。。