第12章模块
模块:允许调入模块,导入import
名称空间:名称到对象的关系映射
解释器启动后,访问搜索路径,保存在sys模块的sys,path变量
12.3名称空间
名称空间:名称到对象的映射
名称空间种类:局部名称空间,全局名称空间,内建名称空间
加载顺序:先加载内建名称空间,然后是全局,最后是活动名称空间
__builtins__:模块中名字构成
__builtin__:
导入模块顺序:
Python标准库模块,python第三方模块,自定义模块
多行导入
from Tkinter import Tk , Frame , Button,Entry, \
Text
12.4.4扩展import 语句(as)
导入模块名字太长或者名称已经被使用用as
import numpy as np
12.5模块导入的特性
载入时执行模块:
一个模块只被加载一次,无论被导入多少次,防止多次执行
导入名称: from module import var
12.5.5 关于__future__
从zip文件中导入模块
globals():返回调用者全局名称空间
locals():
12.6.3 reload()
reload(module):重新导入已经导入的模块,模块是全部导入
12.7 包
包:由模块和子包组成。包含__init__.py
from package.module import *
绝对导入
from Analog import dial
相对导入
from Phone.Mobile.Analog import dial
from .Analog import dial
12.8模块其他特性
组织属性导入,不想导入属性名称加下划线_
导入循环:解决办法,移除其中一个导入语句
把import语句一道到函数内部,确保用到的时候才被导入
def test():
importTest
Test.func()
12.8.5模块执行