您的位置:首页 > 其它

import机制基础

2015-11-15 23:16 204 查看
#-*-coding:utf-8-*-
'''
Created on 2015年11月15日

@author: Zroad
'''

"""
一、模块的定义:
1、模块是一个python程序文件(.py)或是由c/java/c#扩展编写的文件。
2、模块导入其他模块之后就可以使用导入模块定义的变量名。
3、模块可有两个语句和一个内置函数处理,
1)import xxxxx
2)from xxxxx import xxx
3)imp.reload(args)
"""

"""
二、模块的作用:
1、代码重用
2、系统命名空间的划分;模块是变量名的软件包;是组织系统组件的天然工具
3、实现共享服务和数据
"""

"""
三、python的程序架构
顶层文件(脚本)   -> 模块文件(工具的库,提供模块的属性)
"""

"""
四、import的工作流程:
1、找到模块文件:
1)python使用标准模块搜索路径来找出import语句对应的模块文件,具体规则如下:
* 程序的主目录
* PYTHONPATH目录
* 标准链接库目录
* 任何.pth文件内容
上述四项组成sys.path(一个list)内容

2、编译(非必要)
python检查被import文件的时间戳,发现字节码文件比源代码文件旧,将自动重新编译生成字节码

3、执行模块的代码来创建其所定义的对象,仅第一次导入时才执行;python把载入的模块存储到sys.modules字典中。
"""

"""
五、import 和  from 语句
1、import 和  from xxxx import xxxx 都是赋值语句
2、import 语句将整个模块对象赋值给一个变量名
3、from将一个或多个变量名赋值给另一个模块中的同名的对象。
"""

"""
六、关于模块的命名空间
1、顶层的赋值语句(不在class,def之内)会创建模块属性,赋值的变量名会存储在模块的命名空间内。
2、模块的命令空间可以通过__dict__或dir(M)获取
3、模块是一个独立的作用域。模块文件的作用域变成了模x块对象的属性的命名空间

属性名的点号运算:
简单变量X :LEGB作用域原则搜索X
点号运算:X.Y,X.Y.Z,按照层级依次查找对应的属性
"""
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  import机制