闭包&装饰器
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)

带参数的装饰器(参数有且只能有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))


浙公网安备 33010602011771号