直接在当前py文件下运行程序时,__name__的值为__main__
当以模块的形式运行时__name__的值为模块名
当我们的一个py文件下定义了一些公共功能函数,可能被其他程序当成模块调用时。但我们不希望模块中写的一些代码逻辑被执行,只是加载公共功能函数,就可以用到这个if判断。
判断只有自己是python程序运行时才运行,被其他程序当作模块调用时不运行。
示例:
def show(): print('showname __name__:',__name__) print('我是showname模块') show() print('我需要完成一些自己逻辑')
当其他函数调用showname模块
在加载showname模块时,就会直接执行showname模块中写的代码逻辑
import showname print('----其他函数调用----') showname.show() ---------------- 输出: 我是showname模块 showname __name__: showname 我需要完成一些自己逻辑 ----其他函数调用---- showname __name__: showname
showname模块中,使用if判断__name__后再执行自己的代码逻辑。
def show(): print('showname __name__:',__name__) if __name__ == '__main__': print('我是showname模块') show() print('我需要完成一些自己逻辑')
这样,其他函数调用showname模块时,showname模块的__name__就部位__main__,所以showname模块自身的代码逻辑就不会被执行。达到了只加载showname模块下函数的目的。
import showname print('----其他函数调用----') showname.show() ------------ 输出: ----其他函数调用---- showname __name__: showname