当前位置: 首页 > 科技观察

秒懂Python编程中的if __name__ == 'main' 的作用和原理

时间:2023-03-20 19:24:05 科技观察

秒懂Python编程中if__name__=='main'的作用和原理看完觉得不够简单明了,就在文末写了一句,顿时收获满满大家的认可:一句话,我明白__name__是当前模块的名字。当模块直接运行时,模块名称为__main__。这句话的意思是直接运行模块时,会运行下面的代码块,导入模块时,不会运行代码块。相信初学者在学习Python的过程中难免会遇到if__name__=='main'语句。虽然他们一直都知道它的作用,但可能一直很模糊。今天菜鸟分析就举个例子来说说我。理解。比如我们在下面的test.py中写下如下代码:练Python,多练爱’)运行代码,输出结果为:然后,在同一个文件夹下新建一个名为import_test.py的脚本,只输入代码:importtest运行代码,输出结果为:同before比较test.py代码的运行结果,只输出Python,即if__name__=="__main__":执行前面的语句,不执行后面的语句。为什么是这样?别着急,菜鸟分析会不断给大家举例说明,直到你绝对满意,终于有一种豁然开朗的感觉。现在,我们在test.py脚本的if__name__=="__main__":之前加上print__name__,即打印出__name__,最终运行结果如下:可以看出变量的值此时的__name__是“__main__”。然后执行import_test.py,模块内容及执行结果如下:此时import_test.py中__name__变量的值为test,不满足__name__=="__main__"的条件,所以后续代码无法执行。哈哈,是不是一下子就明白了?我觉得很好。给菜鸟分析点赞!再想想,其运行原理是:由于每个Python模块(Python文件)都包含一个内置变量__name__,当模块运行时,__name__等于文件名(包括后缀.py)。如果导入到另一个模块中,__name__等于模块名称(不带后缀.py)。而“__main__”等于当前执行文件的名称(包括后缀.py)。所以当直接执行模块时,__name__=='__main__'的结果为真;而当模块被导入到其他模块时,__name__=='__main__'的结果为false,即没有调用相应的方法。简而言之:__name__为当前模块名,直接运行模块时模块名为__main__。直接运行模块时,代码会运行,导入模块时,代码不会运行。一句话,秒懂!

猜你喜欢