请教:python中测试函数代码中的if __name__=="__main__"

#为函数编写测试用例,最后出现了if name=="main" 不理解这行代码是用来做什么的,name是什么,main又是什么含义,什么情况下这个条件测试成立,什么时候不成立

img

__name__是一个内置变量,里面存放的是调用此包的包名称
如果它是__main__,表示此包独立运行,是主函数
而当它不是__main__,说明此代码是被外部调用的,此时名称是外部调用此包的那个文件的名称
这作用就是为了区分你的包到底是被调用的还是直接运行的
比如你写了个dll,当你外部调用的时候,你肯定希望你调用什么函数它就执行什么函数,不要胡乱自己执行任何你没调用的函数
而你如果要自己测试这个包,你又不想自己另写一个文件来引用它,那样太麻烦
那就判断一下如果是独立运行的,就直接调用你写好的函数,这样简单多了

我们通常在程序里import xxx引用的其实也是python文件,而且在第一次引用的时候,被引用的文件里的代码会自动执行。而有时候我们只想引用自己写的其他python程序里的自定义函数或类,却不想让它的主程序在被引用的时候自动运行,就需要在其他py文件里加上这一句if name=="main"。
__name__是py文件的默认属性,当它没有被其他程序引用时,这个值就是“__main__”,如果被其他程序引用,这个值会被改成py的文件名(或包名),所以加上这条判断语句的话,在被引用的时候就不会自动运行了。