python_decorators

博客介绍了装饰器是对函数、类或子类功能的补充,不会改变原有功能却能扩展。强调函数是对象,可作为参数传递、返回值返回等。还说明了装饰器中参数和返回值的使用,以及返回函数会继续执行函数体并返回最终值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 抽象的理解:功能补充
    装饰器是对一个函数,类或者子类功能的补充。类似于给手机套一个壳,壳并不影响手机的正常功能的使用,但是却额外扩展了手机防摔的功能,装饰器也是类似,她不会改变原有函数和类的功能,但是却可以对原有的函数或者类进行包装,使之功能得到扩展。
  • 理解的关键点:函数也是一种对象
    因为函数也是一种对象,所以函数可以;
    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是真正的返回值(用到上面的第一点:函数作为返回值),这个返回的函数还会继续执行函数体,然后再返回最终值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值