美文网首页
Python_函数式编程_高阶函数_装饰器

Python_函数式编程_高阶函数_装饰器

作者: 宋木木的征途是星辰大海 | 来源:发表于2020-01-29 17:25 被阅读0次

装饰器

设计模式中有一种设计模式动态地将责任附加到对象身上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

而在 Python 中为我们提供更好是的实现方式,那就是装饰器,使用装饰器我们可以很快的实现:

我们先实现一个装饰器:

def log(func):
    def wrapper(*args, **kw):
        print('call %s():' % func.__name__)
        return func(*args, **kw)
    return wrapper

在定义一个函数:

@log
def now():
    print('2015-3-25')

输出:

>>> now()
call now():
2015-3-25

@log放到now()函数的定义处,相当于执行了语句:

now = log(now)

由于log()是一个decorator,返回一个函数,所以,原来的now()函数仍然存在,只是现在同名的now变量指向了新的函数,于是调用now()将执行新函数,即在log()函数中返回的wrapper()函数。

wrapper()函数的参数定义是(*args, **kw),因此,wrapper()函数可以接受任意参数的调用。在wrapper()函数内,首先打印日志,再紧接着调用原始函数。

相关文章

  • Python_函数式编程_高阶函数_装饰器

    装饰器 设计模式中有一种设计模式动态地将责任附加到对象身上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 ...

  • 装饰器

    [TOC] 函数 函数定义 函数调用 高阶函数 嵌套函数 装饰器 装饰器=高阶函数+嵌套函数 基础装饰器 假设有一...

  • Python高阶函数总结

    一、高阶函数 把函数作为参数传入 ,这样的函数称为高阶函数,高阶函数是函数式编程的体现。函数式编程就是指这种高度抽...

  • 高阶python 函数式编程

    高阶python 函数式编程 - 函数式 函数式编程(FunctionalProgramming) - 基于lam...

  • Python_函数式编程_高阶函数

    函数是 Python 内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解...

  • Swift函数式编程与面向协议编程

    函数式编程(FP) 一、函数式编程(FP)-高阶函数 二、函数式编程(FP) - 柯里化(Currying) 三、...

  • 高阶组件装饰器演变过程

    高阶组件装饰器 装饰器整个函数的演变过程如下: ** 注意利用函数式组件进行化简!** 新建src/utils.j...

  • Kotlin 函数式编程思想 FP in Kotlin

    Kotlin 函数式编程思想 : FP in Kotlin 函数式编程特性 闭包和高阶函数 函数编程支持函数作为第...

  • 2019-05-09 Python高阶函数

    高阶函数 把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式 高阶函数英文叫Hig...

  • python装饰器

    装饰器简述 要理解装饰器需要知道Python高阶函数和python闭包,Python高阶函数可以接受函数作为参数,...

网友评论

      本文标题:Python_函数式编程_高阶函数_装饰器

      本文链接:https://www.haomeiwen.com/subject/itfbthtx.html