Day 18
学习后理解:就是写好的代码,方便使用。学习导入、自己写、测试模块和包是本节的目的。
Module( 模块)能定义函数,类和变量,模块里也能包含可执行的代码,就是一个python文件。
PyCharm中 选择project 下边lib 里边有导入的模块
导入模块(多种方法)
一、
import模块名
模块名.功能 math.sqrt(9)
二、
from模块名import功能名
from 模块名 import 功能1, 功能2...; 功能调用(不需要书写模块名.功能)
from math import sqrt
print(sqrt(9))
三、
from模块名import *
from 模块名 import *; 功能调用(不需要书写模块名.功能)
from math import *
print(sqrt(9))
四、
as 定义别名 定义别名后只能用别名
import模块名as别名
模块定义别名、功能定义别名
import模块名as 别名、from模块名import功能as 别名
五、
from模块名import 功能名as别名
制作模块
自定义模块名必须要符合标识符命名规则
测试模块、调用模块
__name__是系统变量,是模块的标识符,值是:如果是自身模块值是__main__, 否则是当前的模块的名字
模块定位顺序
当导入一个模块,Python解析器对模块位置的搜索顺序是:
1.当前目录
2.如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
3.如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
注意
·自己的文件名不要和已有模块名重复,否则导致模块功能无法使用
·使用from模块名 import 功能的时候,如果功能名字重复,调用到的是最后定义或导入的功能
_all_ all列表
如果一个模块文件中有_all___变量,当使用from xxx import*导入时,只能导入这个列表中的元素。
测试案例中因为testB函数没有添加到all列表,只有all列表里面的功能才能导入
包
包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py文件,那么这个文件夹就称之为包。
制作包
[New]—[Python Package]一输入包名一[OK]一新建功能模块(有联系的模块)。
注意︰新建包后,包内部会自动创建_init__.py文件,这个文件控制着包的导入行为。
导入包
1. 导入
import 包名.模块名
2. 调用功能
包名.模块名.功能()
方法二
注意 设置__init__.py文件里面的all列表,添加的是允许导入的模块
from 包名 import *
模块名.目标