Python高级编程:
1、再论模块和包
2、再论==和is
3、深浅拷贝
4、再论函数
5、装饰器
6、迭代器
一.包和模块
1、什么是包(package)?
简单而言,包就是文件夹,用来存放和管理模块所用 ,在Python中,真正意义上的包,必须存在一个初始化文件(init.py)
2、什么是模块(module)?
xx.py文件或者文件的集合
导包:
import xxx.xxx.xxx
from xx.xx import xxx
import xxx.xxx.xxx as alias
import xxx.xx.*
1、在线安装:
pip install xxx
python -m pip install xxx
2、离线安装:
1、下载源代码
xx.zip
2、解压压缩包
python istall step.py
二.== 和 is
在Python中 == 判断的是两个变量的值
在Python中 is用来判断两个变量的内存地址是否相等
id全局函数的使用
常量缓存区
小整形常量缓存区
三.深浅拷贝
对象的拷贝
import copy
copy.copy # 浅拷贝,仅仅拷贝对象的第一层对象
copy.deepcoy # 深拷贝,会递归拷贝
四.生成器
列表推导式
[i for i in range(1, 101)]
[i for i in range(1, 101) if i % 2== 0]
[i*j for i in range(1, 10) for j in range(1, 10)]
列表推导式很强大,但是直接生成列表,那么当列表中的元素特别多的时候,内存的占有就特别的夸张
列表生成器
1、将列表推导式转换为列表生成器
将列表中[]使用()来代替
获取其中的值:使用全局函数next,并且返回下一个值
求斐波拉契数据
运行结果: