[Python]理解一下装饰器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python]理解一下装饰器相关的知识,希望对你有一定的参考价值。

在oop中需要通过继承来实现,而python除了通过继承来实现装饰模式外,直接在语法层次支持装饰器
 
下面通过一个简单的示例来理解一下Python的装饰器
 
这里我将设计一个log类,在编写代码的时候可能会遇到这样的问题,需要记录下所有的操作,这个需求该怎么实现呢?
#python 装饰器
def log(text):
    def decorator(func):
        def wapper(*args):
            print(%s %s:%(text,func.__name__))
            return func(*args)
        return wapper
    return decorator

 

 
来仔细分析一下这个代码,log()函数接受一个文本信息,返回一个decorator函数,然后这个函数的作用就是接收一个新函数,并在调用函数前打印一些信息;

@log(获取时间)
def gettime()
    print(2017-4-15 11:11:11)

now = gettime()
now()

 

结果
技术分享





以上是关于[Python]理解一下装饰器的主要内容,如果未能解决你的问题,请参考以下文章

python使用上下文对代码片段进行计时,非装饰器

Python基础装饰器

如何理解python装饰器

理解Python装饰器

python装饰器

理解Python装饰器