python中if __name__ == '__main__'的代码理解

2021/9/15 1:05:38

本文主要是介绍python中if __name__ == '__main__'的代码理解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

特殊变量语句:if __name__ == '__main__':

 

一,,,从代码形式来看

由if条件测试语句if x == 'y' : 和内置变量__name__结合而成。

这是一个__name__值为Ture或False的表达式,用于条件测试

如果__name__=='main'为Ture,则执行if语句后面的代码,否则忽略

__name__:函数的内置变量

main:主函数,是一个相对概念

 

二,,,从代码中变量来看

如果一个函数的内置变量属于(==)主函数:这种情况是主函数(脚本文件)被直接执行时,脚本文件的内置变量全部属于自身脚本

如果一个函数的内置变量不全属于主函数(调用了其它模块):这种情况是当前执行的文件中调用了其它模块,文件中自然含有其它模块的变量

第一种情况很简单,内置变量全属于当前文件,代码全部执行

第二种情况,主函数的内置变量全部通过if条件测试,而被调用模块的条件变量无法通过条件测试,无法执行if后面的语句(就是if后面的语句都是给当前脚本文件用的,调用模块的变量不能随便改动,就别想用了)

这种变量的设置情况,在多线程中会出现的比较多,就是为了防止变量被定义混乱

 

三,,,从代码输出来看

__name__=='main',变量属于脚本文件,通过(这时__name__打印就是__main(这里的main是被主函数赋值的变量,包含.py,是一个文件,解释器会把文件里的变量读取并执行,变量改成什么样了,就执行成什么样)__,,,二者完全相等);

变量不属于脚本文件(属于调用模块),不通过(这时__name__打印就是__main(这里的main是被调用的模块名称,不含.py,是一个固定的值,解释器会读取变量,但没有通过if条件测试,变量不会改变,也不会被打印出来,只会打印出模块名称)__)。

 

四,,,从代码执行来看

if __name__ == '__main__': 代码开始执行的入口,本文件代码能正常执行,调用模块代码不能执行if语句下后的情况。

 

个人更倾向于把这类if语句看成是一种对变量改动的限制,尤其是在调用模块中,如果没有这种语句,变量范围不明确,很容易让人头大。



这篇关于python中if __name__ == '__main__'的代码理解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程