python 修饰器

学习感悟 专栏收录该内容
15 篇文章 0 订阅

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.
  • 2
    点赞
  • 0
    评论
  • 8
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值