闭包和装饰器

什么是闭包
所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

def make_avg():
    data = list()

    def add_number(value):
        data.append(value)
        total=sum(data)
        return total/len(data)

    return add_number

myavg = make_avg()
print(myavg(100))
print(myavg(200))

通俗的讲:就是函数a的内部函数b,被函数a外部的一个变量引用的时候,就创建了一个闭包。

装饰器
装饰器其实就是一个以函数作为参数并返回一个替换函数的可执行函数。

def makeBold(func):
    def inner():
        return '<b>'+func()+'</b>'

    return inner


def makeIta(func):
    def inner():
        return '<i>' +func()+'</i>'

    return inner

@makeIta
@makeBold
def f():
    retur 'Hello world!'


print(f())

输出结果:<i><b>Hello world!</b></i>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值