Python3中if __name__ == '__main__'使用及说明

 关于下面该句的使用:

 


if __name__ == '__main__'

程序入口经常默认为bin文件,但是在调用其他程序前,需要进行测试。这时候该句就派上用途了。

这里我们用两个文件:

bin.py, foo.py


 

bin.py:


import foo

foo.hello1()  # 由于 foo 里添加了 if 语句 所以bin 调用才执行,不调用不执行。

print(__name__)  # 自己的主程序 自己执行自己时__name__为 __main__

foo.py


def hello1():
    print('joe')


def hello2():
    print('smith')


print(__name__)  # 这句 在自己程序显示时打印: __main__ 调用者调用时打印:该文件文件名

# 测试代码 无需给调用者 显示 添加此语句 就是 因为本程序自己运行时 __name__ 为__main__
if __name__ == '__main__':
    hello2()

 逻辑关系:bin作为程序入口,可以执行某程序特定函数功能(他人开发的),如果是该程序开发者事先让你知道的,但是该程序开发者想自己写一些测试函数,在你调用时不显示出来,这时候就可以写在if __name__ == '__main__': 内。这样就实现了,别人调用与自己调用运行效果不同。


 要点:

  • __name__  这个变量,自己调用自己获取该值时,为__main__ ,当然得在主程序中调用。他人调用获取该值时,为模块名。
  • 将测试代码可以写在if __name__ == '__main__': 语句内,用于区别是自己调用还是他人调用。
  • 导入自己写的模块编译器可能会飘红报错,但是不影响正常运行

 

你可能感兴趣的:(Python,Python3,程序入口,__name__,__main__)