in dubbo/codec/decoder.py [0:0]
def ranges(*defined_ranges):
"""
根据hessian协议,把处理方法交给其定义好的范围
:param defined_ranges:
:return:
"""
def decorator(func):
# 遍历所有的范围
for defined_range in defined_ranges:
if isinstance(defined_range, (tuple, list)):
if not len(defined_range) == 2:
raise ValueError('Invalid range {}'.format(defined_range))
nums = range(defined_range[0], defined_range[1] + 1)
for num in nums:
functions[num] = func
elif isinstance(defined_range, int):
functions[defined_range] = func
else:
raise ValueError('Defined value {} illegal'.format(defined_ranges))
def wrapper(*args, **kwargs):
return func(*args, **kwargs) # 原始方法正常执行
return wrapper
return decorator