今天是自学Python的第五天了。今天主要学习了Python的三大器。装饰器,迭代器,生成器
#装饰器:可以在不改变代码的基础上,给函数添加新的功能。 # 可以在原有操作前面或者后面随意的添加新的功能
装饰器通用语法:
def func(fn):
def inner(*args, **kwargs):
在执行fn之前...
ret = fn(*args, **kwargs)
在执行fn之后...
return ret #把fn执行之后的结果返回
return inner
装饰器的应用场合

高级装饰器(一个方法同时被多个装饰器装饰)
三个不同的装饰器

被多次装饰的结果(就近原则):

还有带参装饰器的语法:

迭代器(iterator):循环建立与迭代器之上。普通情况迭代器用法与循环相似
通过__iter__()方法获取iterator迭代器,也可以使用iter(str,list,dict等类型数据)获取迭代器
__next__()获取下一个值,也可以使用next(迭代器)获取下一个值
示例:

生成器:与迭代器相似
"""
生成器函数:
1.里面有yield
2.生成器函数在执行的时候,实际上是创建了一个生成器出来
3.必须使用__next__()来执行一段代码,会自动的执行到下一个yield结束
4.yield也是返回的意思,可以让一个函数分段执行
5.当后面没有yield之后,再次__next__()会报错Stopiteration
6.节省内存
"""
语法:
def func():
print("123")
yield "你好" #yield也有返回的意思
gen = func() #获取生成器
print(gen) 结果为<generator object func at 0x000001A5435D1F50> 译:生成器在...内存地址
ret = gen.__next__() #获取生成器返回值,next方法是执行语句到下一个yield的意思。
print(ret) 结果为123 你好

节省内存示例:

改进版生成器(获取指定数量):
生成器send方法使用示例:

今天的学习就到这里。每天学习一小结,可以帮助自己梳理学习内容,增加知识点的印象(虽说还是会有不熟悉或者忘记的情况),但是还是要多复习,总结,做题稳固根基。
最后
以上就是害羞缘分最近收集整理的关于自学Python第五天。Python 三大器的全部内容,更多相关自学Python第五天。Python内容请搜索靠谱客的其他文章。
发表评论 取消回复