def set_lenvl(level_num): def set_func(func): def call_func(*args, **kwargs): if level_num == 1: print('-----------权限%d-----------' % level_num) else: print('-------权限%d--------' % level_num) return func(*args, **kwargs) return call_func return set_func @set_lenvl(1) # 将1当做实参传给set_level函数,然后将函数的返回值作为装饰器,装饰目标函数 def ts1(): print('------ts1---------') @set_lenvl(2) def ts2(): print('---------ts2-------') ts1() ts2()