python之 if __name__ == "__main__"

首先,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__'它后面的代码不执行。这样代码运行会更简洁更流畅???因为只需要用想用的那部分就行了。。。

你可能感兴趣的:(python之 if __name__ == "__main__")