关于模块和包,以及程序入口,(__name__)

模块(moudle)本质上是含有代码可被python调用的文件(.py, c或者c++的扩展),每一个模块内部都有一些函数或者变量属性,每个模块都有一个__name__变量记录这个模块的名字,这个变量是全局变量,保证其他python文件想要import时如何确定该文件即是要导入的文件。

包(package是一系列模块构成的集合),每一个包相当于许多模块的集合,且每个包都有一个__init__.py模块,里面可以是空的也可以不是空的,__init__.py的模块名字就是包的名字。

如果正在执行的python文件没有被其他文件导入,(即不是作为模块被import)此时这个文件是程序的入口,相当于一开始就在浅层执行的文件,而不需要python去文件目录中寻找对应的文件来导入代码,这时其__name__='__main__', 也就是正在执行的作为程序入口的文件(不像是模块)的名字是__main__.

#一个进程只对应一个模块的实例,无论被导入多少次,每个模块在整个解释器进程仅有一个实例存在。
#在不同的命令行窗口,不同的notebook是不同的解释器进程。

 

1 import m

2 m.__name__

3 __name__ 

输出:

关于模块和包,以及程序入口,(__name__)

 

原文链接: https://www.cnblogs.com/zy1120192493/p/13121908.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    关于模块和包,以及程序入口,(__name__)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/354825

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午8:55
下一篇 2023年3月2日 上午8:55

相关推荐