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__即变为其自身的模块名。

猜你喜欢

转载自www.cnblogs.com/ivyharding/p/11619017.html