模块的导入
form spam import read1
注意
read1可以直接调用
read1这样容易给其它相同的模块名的冲突
批量导入模块,两种方法
form spam import read1,read2,read3
form spam import (read,
read2,
read3,)
from spam import * (把模块里的东西,全部都导入)
注意:这种导入方式下画线_开头的不能导入 _(#隐藏的意思)
最好不要用这种导入方式,如果要用在原始的.py文件里定义导入的功能
例如: __all__=['read1','read2'](#人为的定义好)
二,模块的搜索路径
import sys
sys.path 看搜索的路径
1.从内置的路径去找模块,找不到去sys找
2.去sys.path 的目录里去找
首先在sys.path的当前目录下找
在到sys.path的目录找
添加路径 :
import sys
sys.path.append("路径")加入路径
sys.path.insert(0,"路径")插入路径
从做到右的方式找 谁在前面先用谁
三,模块的编译
当模块被导入的时候 会在同级的目录下产生字节码 python版本号.pyc结尾
四,模块内建 dir(sys)看模块属性
dir 不会列举出内建函数的名字
dir(builtins)
四,包
无论是import或from import导入时,如果遇到带.的就是包的导入
import glance.db.modes(#模块导入的时候点的左边必须是包)
from glance.db.modes import register_models
导入报实际上在执行 报下面的_init_.py文件
在api包的 文件里定义 _all_=['policy','versions']
import glance.api from * (#不建议使用这个方法)