模块概念
- 包含python代码以.py做后缀的文件
- 模块中存放类或者函数
模块特性
- 复杂的程序拆分成不同的功能存储在模块中,便于维护
- 隐藏代码细节,将重点放在程序的高层逻辑上
- 可重用,可共享,处理某类问题的类和函数的集合
模块导入
- 类似于把要导入的模块内的代码全部拷贝到当前程序的文件中
- 如果要导入的模块以数字开头,需要借助importlib帮助
- import module_name 全部导入
- from module_name import class_name,function_name 选择性导入
- import module_name as alias 使用别名
- from module_name import * 全部导入,但是可能会产生冲突,不推荐
- import导入可以放在程序代码的任意位置,但是建议最好放在程序最开始
模块使用
- module_name.attribute_name
- module_name.function_name
- module_name.class_name
模块的属性
__name__
判断当前模块是否是程序的入口
- if __name__ == '__main__':
- 模块单独执行时,满足条件
- 模块被其他程序调用时,不满足条件__doc__
模块的文档字符串
模块的搜索与存储
- 加载模块时,系统的搜索路径
- 当前目录、Lib、site-packages、sys.path - 手动添加包路径
import sys
sys.path.append('E:\Learn')
for i in sys.path:
print(i)
模块的加载顺序
- 1.先搜索内存
- 2.内置模块
- 3.sys.path路径
模块的内置函数
- python内联模块中定义了一些常用函数
- filter()
- 对序列中的元素过滤 - map()
- 序列元素解包操作
- 对多个序列中的每个元素执行自定义的操作,结果组成列表返回
abs(-1)
bool()
eval()
float(1)
hash()
help()
id()
input()
int()
len()
range()
round()
set()
sorted()
sum()
type()
xrange()
zip()
def func(x):
if x > 0:
return x
for i in filter(func,range(-9,10)):
print(i)
def power(x, y):
return x ** y
for i in map(power,range(1,10),range(1,10)):
print(i)