Python (十七) __name__ == ‘__main__‘ 作用

发布时间:2024年01月05日

程序员的公众号:源1024获取更多资料,无加密无套路!

最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等
获取方式: 关注公众号并回复 电子书 领取,更多内容持续奉上


作为解释性脚本语言,python程序并没有特定的main()主程序入口,一般都是自顶向下,逐行执行,__name__?==?"__main__"可以理解为程序的执行入口。

__name__、__main__

def test():
    print('this is main1 func')
    print('__name__:',__name__)
    print('__main__:','__main__')

test() 


#输出
this is main1 func
__name__: __main__
__main__: __main__

从上面代码可以看到,在main1.py这个文件中,__name__和__main__的值是一样的,所以

__name__ == '__main__' 一直都是True。

接下来看看如果作为模块引用到别的模块的时候,这两个值还一样吗?

import main1
def test():
    print('this is main2 func')

if __name__ == '__main__':
    test()



#输出
this is main1 func
__name__: main1
__main__: __main__
this is main2 func

从输出结果可以看到,__name__的值变成了模块名main1,而__main__的值不变,如果我们只是想调用main2中的test方法,不调用main1中的test方法,我们对main1文件进行修改,如下:

def test():
    print('this is main1 func')
    print('__name__:',__name__)
    print('__main__:','__main__')

if __name__ == '__main__':
    test()    

从上面的代码示例中,我们可以得出结论:

___name__==? '__main__' 的主要作用就是为了控制函数逻辑在其他模块中引入时不执行。


系列文章索引

Python (一) 操作Mysql

Python (二) 读写excel文件

Python (三) 读写csv文件

Python (四)读写word

Python (五) 处理图像

Python (六) 绘图

Python(七)操作JSON

Python (八)网络编程

?Python (九)requests

?Python (十) operator

Python (十一)多线程

Python (十二) NumPy操作

Python (十三) pandas(一)

Python (十四)pandas(二)

?Python (十五)pandas(三)


文章来源:https://blog.csdn.net/feikillyou/article/details/135408138
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。