day05 - 01 - 模块与导入
1、什么是模块?
1、什么是模块?:用来从逻辑上组织,可以在模块里定义变量,函数,类,和逻辑。注意:模块与包是不同的,包:用来从逻辑上组织模块的,本质上就是一个目录(必须带有一个__init__.py文件。
2、实现原理是什么?
2、实现原理是什么? py结尾的的Python文件(文件名:test.py,对应的模块名:test),去实现一些功能
3、怎么使用?
在同一父目录下导入模块:- import model_name
- import model1_name,model2_name
- from model_alex import *:导入一个模块所有方法、变量和函数:,相当于把一个模块的所有代码块摘取到当前,直接使用即可。但不提倡这种方法。当导入的函数与当前程序重名时,以当前定义的函数和变量为准。因为Python是自上而下解释运行的,当程序运行到当前的
- from model_alex import func1,func2,func3:导入多个函数或变量
-
from model_alex import as model_Alias:为了避免导入的模块里的函数或变量与当前的函数或变量重名,起一个别名。
调用法 : model_name.funcyion_name()
在不同父目录下导入包: 本质就是调用包下的__init__文件
import 模块就是导入一个.py文件,想要导入,就需要找到模块的路径.系统环境变量定义了文件搜索的路径,想要被解释器找到,就想要把被导入的模块的路径加入系统环境变量里。
在package_text的test文件中定义一个函数:
在package_text的__init__文件中导入test1
在调用程序中将被调用模块的路径加入环境变量中:
运行p_test.py文件:
4、import的本质(路径搜索和搜索路径)
- import model_name: 在执行过程中被导入的模块的全部代码被解释了一遍并且进行了封装,封装成了一个内存对象,其内存地址赋值给了模块名,引入到了当前的程序,所以想要调用的时候:model_name.value 或 model_name.func()
- from model_name import value : 把被导入的模块里的变量或函数摘取出来放在了当前的代码中,所以不需要加上模块名就可直接使用.
- 总结:导入模块的本质就是把Python文件解释一遍,导入一个包就是在执行包下面的init文件
5、模块的分类:
- 标准库
- 开源模块
- 自定义模块:实际上就是自己写一个Python文件,然后导入使用
自定义模块 和开源模块的使用参考 http://www.cnblogs.com/wupeiqi/articles/4963027.html
在不同父目录下导入: