【Python】Python学习(四)——import详解

一. 基本要素
● module
        通常模块是一个文件,可以用import导入,模块的文件格式有:.py .pyc .pyo .pyd .so .dll。
● package
        包总是一个目录,可以用import 导入包,还可用from…import…导入包中的部分模块。包目录下必须包含__init__.py文件,其他是模块文件和子目录,若子目录中包含__init__.py,它就是包的子包。
二. 导入原理
● 库路径
        在导入库时,要确认库在系统能够识别的路径里,若不在可通过sys追加。
import sys
        sys.path.append(r'D:\workspace\test\')
● import
        系统在导入模块时,做如下事情:
○ 为源代码文件中定义的对象创建名字空间,通过名字空间可以访问到模块中定义的函数及变量。
○ 在新创建的名字空间里执行源代码文件
○ 创建名为源代码文件的对象,该对象引用模块的名字空间,通过对象访问模块中的函数及变量。
        用逗号分割模块名称可以导入多个模块,模块导入时可以用as关键字来改变模块的引用对象名字。
● from…import…
       使用from语句可以将模块中的对象直接导入到当前的名字空间,它不创建到模块名字空间的引用对象,而是把被导入的对象直接放到当前的名字空间。
        from语句支持逗号分割的对象,可以使用星号(*)代表模块中除下划线开头的所有对象。如果一个模块定义有列表__all__,from module import *只能导入__all__列表中存在的对象。
● 语句位置
        import语句可以在程序的任何位置使用,可以在程序中多次导入同一模块,但模块中的代码仅仅在首次导入时执行,后面的import只是简单创建引用。sys.modules字典中保存着所有被导入模块的模块名到模块对象的映射。
        from module import *语句只能用于模块的最顶层。由于存在作用域冲突,不允许在函数中使用from语句。
●模块搜索路径
        导入模块时,解释器会搜索sys.path列表,这个列表保存在一系列目录。空字符串代表当前目录。要加入新的搜索路径,只要将路径加到这个列表即可。
● init
        无论一个包的哪个部分被导入,文件__init__.py的代码都会运行,它通常用来放包的初始化代码。
【Python】Python学习(四)——import详解_第1张图片

你可能感兴趣的:(【Python】Python学习(四)——import详解)