python_decorators

  • 抽象的理解:功能补充
    装饰器是对一个函数,类或者子类功能的补充。类似于给手机套一个壳,壳并不影响手机的正常功能的使用,但是却额外扩展了手机防摔的功能,装饰器也是类似,她不会改变原有函数和类的功能,但是却可以对原有的函数或者类进行包装,使之功能得到扩展。
  • 理解的关键点:函数也是一种对象
    因为函数也是一种对象,所以函数可以;
    1. 作为参数被传递进去
    2. 作为返回值被返回
    3. 赋值给变量
    4. 嵌套定义函数(返回一个内部函数)
    5. 内联函数调用外部变量(闭包)
  • 装饰器:

def div_dec(func):
    def func_wrapper(saying):
        return "<div>{}<div>".format(func(saying))
    return func_wrapper

@div_dec
def say_something(context):
    return "python print something like {}".format(context)

print(say_something("take a try"))

输出内容

<div>python print something like take a try<div>

上面装饰器中的参数func就是下面的具体修饰的函数(用到上面的第一点:函数作为参数),最后返回的func_wrapper是真正的返回值(用到上面的第一点:函数作为返回值),这个返回的函数还会继续执行函数体,然后再返回最终值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值