sys.modules查看
在第一次导入某个模块时(比如my_module),会先检查该模块是否已经被加载到内存中,如果有则直接引用,如果没有,解释器则会查找同名的内建模块,如果还没有找到就送sys.path...__.py,导入包的本质就是在导入该文件
强调:
1.在Python3中,即使包下没有__init__.py文件,import包仍然不会报错,而在Python2中,包下一定要有该文件,否则import... import *
此处是想从包api中导所有,实际上该语句只会导入包api下__init__.py文件中定义的名字,我们可以在这个文件中定义__all__:
#在__init__.py中定义
x=...导入内置或者第三方模块(已经在sys.path中),但是要绝对避免使用import来导入自定义包的子模块(没有在sys.path中),应该使用from... import ...的绝对或者相对导入,且包的相对导入只能用....py
└── models.py
相对导入
相对导入
单独导入包
单独导入包名称时不会导入包中所有包含的所有子模块,如:
#在与glance同级的test.py中
import