一、模块、包、库
模块:就是一个后缀名为.py文件
'''
@author:Lau
@date:2020年08月01日
'''
list1 = []
def print1():
pass
class Demo:
pass
比如这个模块就是由列表、函数、类组成的
包:包就是一个目录,目录下有__init__.py的文件,和windows系统的文件夹类似
package:
—a.py
—b.py
—c.py
—init.py
库:是一个抽象概念,凡是有功能的代码块的集合都可以叫库。我们可以使用python自带的标准库,也可以使用第三方库。
小结:从编程的角度来看,当我们想完成一件事时,需要创建多个模块,可以把这些模块放在包里面,就是一个库。
二、导入模块
模块之间是可以相互使用的,如果想要在一个模块中使用其它的模块,就需要先导入模块,不导入模块,python无法识别相关的函数、类…
- 导入模块时,得让python知道该模块在哪,而导入时的搜索路径在sys模块的path列表里
import sys
print(sys.path)
如果要导入的模块不在搜索路径里,需添加搜索路径
from sys import path
path.append("文件所在路径")
- 导入模块和使用模块
2.1 假定想导入的模块已经在python的搜索路径里,比如和当前文件的路径一致
a. import 模块名
模块名.函数/类/变量
b. import 模块名 as 别名
别名.函数/类/变量
c. from 模块名 import 函数名/类名/变量
函数/类/变量 #导入的是函数,只能使用函数
d. from 模块名 import *
函数/类/变量均可以使用
2.2 假定包所在的路径在搜索路径内,需要导入包中的模块
a. import 包名.模块名 as a
a.函数名()
b. import 包名.子包名.模块名 as a
a.函数名()
c. from 包名 import 模块名
模块名.函数名
d. from 包名.模块名 import 函数名/类/变量
函数名()/类/变量
e. from 包名.模块名 import *
函数、类、变量均可以使用
小结:单独使用import,从层级上来看,只能import 模块,不能import函数;无论是import,还是from…import,import后面要么接模块,要么接函数/类,不能既有模块又有函数。换言之,你可以导入模块或函数,不能导入的时候就用模块调用函数。如果从包中调用模块,你可以使用 . 操作符,包名.模块名,这个只能出现在单独的import或from…import中的from中,如果用from,就不能import子包.模块名了。