首页 > 其他 > 详细

装饰器

时间:2021-06-07 16:37:35      阅读:20      评论:0      收藏:0      [点我收藏+]

装饰器

# 1. 为什么要用装饰器?
"""
在不改变原函数的基础上,对函数执行前后进行自定义操作。
"""
import functools

def wapper(func):
    @functools.wraps(func)
    def inner(*args,**kwargs):
        return func(*args,**kwargs)
    return inner
"""
1. 执行wapper函数,并将被装饰的函数当做参数。 wapper(index)
2. 将第一步的返回值,重新赋值给  新index =  wapper(老index)
"""
@wapper
def index(a1):
    return a1 + 1000

@wapper
def order(a1):
    return a1 + 1000


print(index.__name__)
print(order.__name__)

带参数的装饰器

def outer(flag):
    def timer(func):
        def inner(*args,**kwargs):
            if flag:
                print(‘‘‘执行函数之前要做的‘‘‘)
            re = func(*args,**kwargs)
            if flag:
                print(‘‘‘执行函数之后要做的‘‘‘)
            return re
        return inner
    print(‘outer‘)
    return timer

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

func()

# 1.fun=outer(True)
# 2.@fun

装饰器

原文:https://www.cnblogs.com/wuyuan2011woaini/p/14858231.html

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