Python中模块的动态加载机制

本文介绍了Python中模块的动态加载机制,sys.modules作为全局module池,存储所有导入的模块,确保每个模块在内存中只有一个映像。当import一个模块时,Python会在sys.path路径下查找,包括程序主目录、PYTHONPATH、标准库目录和.pth文件指定的目录。模块的导入过程遵循树状结构,而package则用于管理模块,形成层次化的组织。Python的import操作会创建module对象并设置其__name__和__path__属性。
摘要由CSDN通过智能技术生成

1.Python运行时全局module pool机制

      sys.modules 是一个字典,它包含了从Python 开始运行起,被导入的所有模块。键字就是模块名,键值就是模块对象。请注意除了你的程序导入的模块外还有其它模块。Python 在启动时先装入了一些模块,如果你在一个Python IDE 环境下,sys.modules 包含你在IDE 中运行的所有程序所导入的所有模块。初始化时预先加载到内存的module 和被动态加载的用户自定义module都存放在sys.modules中,sys.modules就是Python系统的module集中营。module对象内部实际上是通过一个dict维护所有的(属性,属性值)。

       import并不完全等同于我们所熟知的“动态加载”的概念,它的真实韩图是希望某个 module能够被感知,即是将这个module以某个符号的形式引入到某个名字空间。如果import等于动态加载,python将对同一个module执行多次动态加载,并且在内存中保存一个module的多个映像,显然不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值