1.生成器函数
使用yield返回返回值,函数并没有结束,还可以继续执行
生成器一次返回一个(组)数据
1)生成器对象
循环生成器对象时,一次获取一个值
for i in gen:
print(i)
将生成器对象强制类型转换为列表
2)元组生成器
生产或处理大量数据,使用生成器一个一个的处理,用于节省内存空间
gen = (2 ** i for i in range(1,65))
print(gen)
print(list(gen))
2.装饰器函数
在不修改原函数代码的前提下,给原函数增加或修改功能,可以使用装饰器函数
其中有一个名字叫装饰语法糖是@tools
特点:a.它是一个高阶函数
b. 将原函数作为参数,放到装饰器内部定义的函数中执行
c. 在内部函数中增加新的功能
d. 返回内部函数用于替换原函数
使用场景:框架中定义特定功能的函数,日志,验证,权限的管理
来一个装饰器函数的例子
3.文件
被持久化存储在磁盘上的字符串
4.文件的操作
1)读操作:将文件中的字符串加载进内存
2)写操作:将字符串写入到磁盘中的操作
例如:open函数用于读写文件
4.参数
1)file:文件名
注意路径:绝对路径 r"C:\test\hello.txt"
相对路径 next\hello. txt
2)encoding:指定open函数在读写文件时使用 的字符集
windows 默认字符集是gbk
notepad++ 默认字符集是utf-8
open函数在windows上默认字符集是gbk,在Linux上 默认字符集是utf-8,open函数执行后返回一个对象文件
3)mode
“r” 只读模式(默认)
"w"只写模式,文件不存在可以创建文件,文件存在时覆盖文件
"a"追加模式,文件不存在创建文件,文件存在时将内容添加到文件末尾