一个理解装饰器很好的例子

微笑微笑吐舌头吐舌头啥也不说了,直接看图:


吐舌头吐舌头微笑微笑另外符文函数学习内容:

#把foo1看成一个变量,指向函数对象
def foo1(num):
    return num+1
print (foo1(3))

#foo2指向另外一个函数
def bar():
    return 'Bar'
foo2=bar
print (foo2())

#函数作为返回值
def foo3():
    return 2
def bar2():
    return foo3

print (bar2()())
#等价于 print (foo3())

#函数作为参数
def foo4(num):
    return num+1
def bar3(fun):
    return fun(3)
value=bar3(foo4)
print (value)

#函数的嵌套
def outer():
    x=1
    def inner():
        print(x)
    inner()
outer()

#闭合包
def outer(x):
    def inner():
        print (x)
    return inner
closure=outer(1)
closure()

#装饰器
def outer(func):
    def inner():
        print('记录日志开始')
        func()
        print('记录日志结束')
    return inner

@outer
def foo5():
    print('执行函数foo5')
#没有修改foo5函数的任何逻辑,只是给foo5变量重新赋值了,指向了一个新的函数对象。最后调用foo5不仅能打印日志,业务逻辑也执行完了。这里的outer函数其实就是一个装饰器。
#foo5=outer(foo5)
foo5()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值