首页 > 其他 > 详细

第二十七节 对有参数无返回值的函数进行装饰

时间:2020-03-31 09:11:41      阅读:59      评论:0      收藏:0      [点我收藏+]
def set_func(func):
    # print(‘装饰器开始装饰了...‘)
    def call_func(num):
        print(....权限1.....)
        print(....权限2.....)
        func(num)
    return call_func
    
@set_func  # 等价于 test1 = set_func(test1) 
def test1(num):
    print(".......这是test1......%d" % num)

test1(100)
test1(200) 

# 一个装饰器可以装饰多个函数,并不是函数调用时才装饰,可以在去掉函数调用验证
# 每装饰一个函数,就会生成一个闭包空间,会生成一个局部变量用来存储原来函数指向的地址,跟类生成一个实例对象类似




‘‘‘
必须使用闭包才能将对test1原指向保存下来

def set_func(func,num):
    a = func
    print(‘....权限1.....‘)
    print(‘....权限2.....‘)
    a(num)

# 等价于 test1 = set_func(test1) 
def test1(num):
    print(".......这是test1......%d" % num)
test1 = set_func(test1,100) 
test1(100)
test1(200) 
‘‘‘

 

第二十七节 对有参数无返回值的函数进行装饰

原文:https://www.cnblogs.com/kogmaw/p/12602555.html

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