首页 > 编程语言 > 详细

python 装饰器

时间:2019-04-06 10:06:36      阅读:106      评论:0      收藏:0      [点我收藏+]

装饰器的主要功能:

在不改变函数调用方式(不改变原函数)的基础上在函数的前,后添加功能

装饰器的固定格式

def timmer(func):
    def inner(*args,**kwargs):
        set = func(*args,**kwargs)
        return set
    return inner  # 传内部函数的名称,不能加括号


@timmer  # @装饰器函数名   # func = timmer(func)
def func(*args,**kwargs):  # 被装饰器函数
    time.sleep(0.01)
    print(大家好)


ret=func()
print(ret)

带参数的装饰器

def outer(flag):
    def one(func):
        def two(*args,**kwargs):
            if flag:
                print(‘‘‘执行之前‘‘‘)
            ret= func(*args,**kwargs)
            if flag:
                print(‘‘‘执行之后‘‘)
            return ret
        return two
    return one

@outer(False)
def func():
    print(111)

func()

多个装饰器装饰一个函数

def wrapper1(func):
    def inner():
        print(wrapper1 ,before func)
        func()
        print(wrapper1 ,after func)
    return inner

def wrapper2(func):
    def inner():
        print(wrapper2 ,before func)
        func()
        print(wrapper2 ,after func)
    return inner

@wrapper2
@wrapper1
def f():
    print(in f)

f()

 

python 装饰器

原文:https://www.cnblogs.com/iswuyi/p/10660760.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!