python 修饰器

博客介绍了Python修饰器,指出在Python中一切皆为对象,函数也不例外,函数参数可以是函数。修饰器的作用是动态为旧函数增加新语句,对旧函数进行“装饰”,还提及引用了董付国老师书中的代码。

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

Python修饰器

python 修饰器是python 语法中一个很神奇的存在,我们可以这样理解它:

  • 在python中,一切皆为对象,函数也是对象,我们定义的名称只是绑定到这些对象的标识符。 函数也不例外,它们也是对象(带有属性)。 各种不同的名称可以绑定到同一个功能对象。
  • python 中的函数参数可以是函数(因为都是对象嘛),如果你曾经用过map,filter等方法,那么你一定会对此有所了解。
  • 修饰器的作用就是动态的为旧函数增加新的语句,把旧函数“装饰”一番。
    下面是董付国老师的《Python程序设计基础(第2版)》中的一段代码:
def before(func):   # 定义修饰器
    def wrapper(*args, **kwargs):    #新函数
        print ('Before function called.')    #新增的语句
        return func(*args, **kwargs)    #返回旧函数
    return wrapper    #返回新函数
def after(func):    # 定义修饰器
    def wrapper(*args, **kwargs):    #新函数
        result = func(*args, **kwargs)    #调用旧函数
        print('After function called.')    #增加新语句
        return result    #返回旧函数
    return wrapper    #返回新函数
@before    #外层的修饰
@after    #内层的修饰
def test()    #可以理解为print(3)先增加了after修饰的语句后的新函数
    print(3)  #又增加了before修饰的语句

input:
>>> test()

output:
>>> Before function called.
    3
    After function called.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值