Discuss / Python / MYH: if __name__ == '__main__':

MYH: if __name__ == '__main__':

Topic source

master_Hang

#1 Created at ... [Delete] [Delete and Lock User]

在网上以及评论区看到很多人把这个讲得过于专业化,不易理解,下面是我本人简易理解,希望对大家有帮助。

当我们写好一个模块,也就是一个.py文件的时候,比如在Pycharm里面:

(1)第一种情况:我们可以直接运行这个.py文件,也就是当作了主模块,那么__name__这个特殊变量就会被赋值为:'__main__',当你点击运行后,这个if语句后面会自动执行。

(2)第二种情况:我们可以在其他模块(其他.py)文件通过import第一种的模块,但是这种情况 那个模块的__name__就不是'__main__'了,所以if语句判断失败,if下面的语句都不会自动执行。

通俗来讲就是,if后面的代码第一种会自动执行,第二种会被屏蔽掉,可用来方便测试。比如我们在一个模块定义了一些有用的函数,当然可以在if语句里面进行测试,而其他模块进行调用该函数时候,为了简化代码,肯定不需要看到该模块的测试,只需要引用到该函数的定义就好了,所以通过if就可以屏蔽掉不需要的代码。

讲的不够好,希望对大家多多少少有点帮助

好像懂了:1,自己运行就判定成功,别人引用就判定失败。

2,判定成功:道理我懂了,我去做一遍。(有输出就输出)

判定失败:道理我懂了,我还没去做。(没做输出更没有)

柳叶辺

#3 Created at ... [Delete] [Delete and Lock User]

我刚试了 import这个模块进来之后 还是可以执行啊 pycharm里面

import hello

hello.test()

涵_天

#4 Created at ... [Delete] [Delete and Lock User]

在外部调用 模块时,__name__ 应该是等于 模块名字


  • 1

Reply