美文网首页
Python decorator

Python decorator

作者: 作卓 | 来源:发表于2013-12-10 10:41 被阅读0次

话说昨天面试python开发的时候,做了一个笔试题。

本来以为自己还算有python开发经验的,但是一真正测试才发现自己还是很弱啊。有一个是实现一个decorator,虽然平时用到装饰器的情况很多,却真的还没自己实现过,于是就跪在这个题上了。回来之后一顿恶补,总结了一下。

首先就是 @wrapper := func = wrapper(func)。意思就是装饰器实际上是修改并重载一个函数,它是以一个函数做为参数并且返回一个函数。

然后

def wrapper(func): <br>
    def inner(*args, **kwargs):
        print "do extra work"
        return func(*args, **kwargs)
    return inner

这个wrapper函数返回了一个函数,这个函数接受与func一样的参数,做了一些其他的事之后就可以返回原来的func了。

这里面还涉及到一个闭包closure的概念,每次wrapper接受不同的函数,inner都会保存这个函数并返回一个新的函数,也就是这个函数参数在wrapper结束后也没有销毁,它的生命周期在wrapper之外。

参考资料:十二步理解decorator

相关文章

  • python常用的装饰器

    Python中有很多装饰器(decorator),可以减少冗余代码。Decorator本质上也是函数,只是它的参数...

  • Python中的Decorator装饰器

    Decorator 装饰器 理解decorator(装饰器)的关键, 在于理解在python中函数是第一公民, 并...

  • Python Decorator

    利用装饰器记录函数运行时间 list去空s=['A', '', 'B', None, 'C', ' ']s=...

  • Python Decorator

    flask中有很多装饰器,今天来整理下Python中装饰器的相关概念。 1. 最简单的装饰器 我们常常可以看到类似...

  • Decorator in Python

    First look at what a decorator code really is doing.The f...

  • Python decorator

    话说昨天面试python开发的时候,做了一个笔试题。 本来以为自己还算有python开发经验的,但是一真正测试才发...

  • 【Python】decorator

    decorator @ 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外...

  • python decorator

    实现一个log的decorator,使它既支持: 也支持: 实现: 使用log 装饰器装饰方法: 输出: @wra...

  • TypeError: 'NoneType' object is

    Python在使用decorator时,报错TypeError: 'NoneType' object is not...

  • JavaScript装饰器 Decorator

    前言 许多面向对象都有decorator(装饰器)函数,比如python中也可以用decorator函数来强化代码...

网友评论

      本文标题:Python decorator

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