闭包&装饰器

def check(fn):
    def inner(x,y):
        print('验证登录',x,y)
        fn(x,y)
    return inner

@check
def comment(x,y):
    print("发表评论",x,y)

if __name__ == '__main__':
    comment(100,200)

image

 

带参数的装饰器(参数有且只能有1个)

def logging(flag):  # 如果装饰器里面需要传多个参数,在这里用逗号隔开
    def operation(fn_name):
        def fn_inner(x,y):
            if flag == '+':
                print('正在努力做加法...')

            if flag == '-':
                print('正在努力做减法...')
            return fn_name(x, y)
        return fn_inner
    return operation
@logging('+')
def cal(x,y):
    return x+y

if __name__ == '__main__':
    print(cal(3,2))

image

 

posted @ 2025-11-13 14:25  iTao0128  阅读(3)  评论(0)    收藏  举报