装饰器和迭代器

一、生成器

只要在函数中使用yield关键字,使用了yield的函数就会被成为生成器函数。
yield函数的作用:
1.类似return,将指定值或多个调用值传给返回调用者。
2.yield语句一次返回一个结果 ,在每个结果中间,挂起函数,执行next函数,再重新从挂载点继续执行。
即yield语句使函数中断,并保存中断状态。
一般与next()共同使用。
在这里插入图片描述

二、装饰器

装饰器本质上就是python的一个函数(闭包),它可以让其他函数在不需要做任何代码变动的前提下增加额外的功能,装饰器的返回值也是一个函数对象。
闭包:
在这里插入图片描述
一般将外部函数名作为装饰器名,使用@调用

def num1(a):#参数a接受被装饰的函数名
    def num2():
        print("函数开始")
        a()#调用被装饰的函数
        print("函数结束")
    return num2

@num1#使用装饰器
def num3():
    print("函数体")
    
num3()

运行结果
在这里插入图片描述
第一步:执行@num1,即num1(num3)
第二步:执行num2,给num3,即num3=num2
第三步:num3(),调用num3(),即num2()
第四步:a(),即调用被装饰的num3()中的语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值