Sha*_*awk 14 python python-import
当有人使用import命令时,有人可以提供帮助和澄清,此时各个包目录中的__init__.py文件是否被执行?
import命令?import命令?Łuk*_*ski 15
它是在第一个模块导入时评估的.在下一次导入时,解释器检测到该模块已经加载,并简单地返回对它的引用.无需重新执行代码.
引用导入系统:
在缓存模块上:
导入搜索期间检查的第一个位置是sys.modules.此映射用作先前已导入的所有模块的缓存,包括中间路径.因此,如果先前导入了foo.bar.baz,则sys.modules将包含foo,foo.bar和foo.bar.baz的条目.每个键的值都是相应的模块对象.
在导入期间,将在sys.modules中查找模块名称,如果存在,则关联的值是满足导入的模块,并且该过程完成.但是,如果值为None,则引发ImportError.如果缺少模块名称,Python将继续搜索模块.
在__init__导入时执行:
Python定义了两种类型的包,常规包和命名空间包.常规包是Python 3.2及更早版本中存在的传统包.常规包通常实现为包含init .py文件的目录.导入常规包时,将隐式执行此__init__.py文件,并且它定义的对象将绑定到包命名空间中的名称.__init__.py文件可以包含与任何其他模块可以包含的相同的Python代码,并且Python将在导入模块时向模块添加一些其他属性.
| 归档时间: |
|
| 查看次数: |
2753 次 |
| 最近记录: |