一、包和模块,包简单而言就是文件夹,用来存放和管理模块;模块就是一个个python文件或者文件的集合。
常用导包命令:
import xxx.xxx.xxx
from xx.xx import xxx
import xxx.xxx.xxx as alias
import xxx.xxx.*
注意:有时候在使用*这种导入方式会默认导致失败,因为这些包没有在初始文件申明它包含的模块
__all__ = ["模块1","模块2","模块3","模块n"] 可以导入多个模块
二、==和is
在python中 == 用来判断的是两个变量的值,is用来判断两个变量的内存地址是否相等
字符串,常量存在数据区,常量缓存池,在(-5~256)值间会有小整型缓存区,我们使用id函数查看时会指向同一内存地址,所以==和is结果都是TRUE。而所有不可变类型缓存只有一份。
我们常使用id全局函数来看缓存内存地址。
三、深浅拷贝
是指对象的拷贝,(引用传递是内存地址的拷贝)
import copy
copy.copy #浅拷贝,仅仅拷贝对象的第一层对象
copy.deepcopy #深拷贝,会递归拷贝,地址会发生改变
四、生成器
1、列表推导式:
类似[i for in range(0,100)],列表推导式很强大,但是当列表中元素特别多时,直接生成列表会很占内存所以就有了列表生成器
2、列表生成器
将列表推导式转换为列表生成器,我们可以使用next()全局函数来返回下一值。next()全局函数不能后退,只能前进,当生成器中没有元素时,或抛出打断异常。