python Decorator、Generator、上下文管理器

阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。希望互相进步谢谢!!


一、decorator?

《参考文1:廖老师》

1、本质:

返回函数的高阶函数

2、目的:

执行期间动态增加一些功能

3、不含参、含参的定义

在这里插入图片描述


二、generator

《参考文1:廖老师》
《参考文2:连Python产生器(Generator)的原理都解释不了,还敢说Python用了5年?》

1.本质

是一个迭代器,不过是动态产生待迭代的值

2、目的

边循环边计算,不必一开始就创造完整的list,从而节省大量空间。即让需要迭代的值不必常驻内存。

3、初始化方式

两种要掌握:

第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator。

定义generator的第二种方法。如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator函数,调用一个generator函数将返回一个generator。

4、执行过程

yield返回一个generator,输出值仍然是yield后面表达式的值,暂停,直至下一次执行。

其实yield语句就像print,只不过yield除了实现print以外,还能实现中断。

5、区分generator 和 generator函数

generator函数 != generator

generator函数是得到generator的一种方式,只要函数中含有yield,此函数就是generator函数,它会返回一个generator。故generator函数是generator两种初始化方式中的一种。

6、要理解for循环

for循环里会自动调用next()函数

7、如何调用generator

不用next()挨个调用

在for循环里用即可。


三、上下文管理器?

装饰器 + 生成器 = 上下文管理器


码字不易,谢谢点赞!!!
码字不易,谢谢点赞!!!
码字不易,谢谢点赞!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值