python if __name__ == "__main__"

Posted ivyharding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python if __name__ == "__main__"相关的知识,希望对你有一定的参考价值。

之前对这个的认识是:

if __name__ == "__main__":
    #这个时候可以执行程序

 

方式一: 

这个是在你自己眼中,你认为你自己是__main__

举例

print(‘hello world!‘)
print(‘__name__value:‘,__name__)

def main():
    print(‘This message is from main function‘)

if __name__ == "__main__":
    main()

  执行上述代码,输出

hello world!
__name__value: __main__
This message is from main function

  我们可以分析得到:这时__name__ == "__main__"

所以第二句话输出__main__

在if __name__ == "__main__":这句,显然成立,我们直接执行main()函数的内容,所以输出This message is from main function

 

再换一种情况

此为print_func.py

print(‘hello world!‘)
print(‘__name__value:‘,__name__)

def main():
    print(‘This message is from main function‘)

if __name__ == "__main__":
    main()

  另外一个python文件为print_module.py

import print_func
print("Done!")

  这个时候输出啥呢?

我们分析一下:首先在print_module.py中,也就是在别人的眼中,__name__ == "print_func",也就不再执行print_func.py中的if __name__ == "__main__":语句

那么输出

hello world!
__name__value: print_func
Done!

  

总结

自己运行自己的程序,__name__ 即为__main__
当程序当做脚本被别人调用运行时,其__name__ 为自己的模块名称,这里的print_func即被导入到print_module中当做脚本被运行时,则print_func的__name__即变为其自身的模块名。

以上是关于python if __name__ == "__main__"的主要内容,如果未能解决你的问题,请参考以下文章

Python if __name__ == '__main__': 理解

Python关于`if _name_ == “_main_“`

如何简单地理解Python中的if __name__ == '__main__'

如何简单地理解Python中的if __name__ == '__main__'

Python中的构造“ if __name__ == '__main__'”

python中if __name__ == '__main__':