装饰器用于参数检查
检查函数接受或返回的参数,在特定上下文中执行时可能有用。XML-RPC协议是一种轻量级的远程过程调用(Remote Procedure Call)协议,通过HTTP使用XML对调用进行编码。自定义装饰器可以提供这种类型的签名,并确保输入和输出的类型,简单来讲就是创建一个用于检查输入参数和输出参数类型的装饰器
首先展示完整的代码
rpc_info = {
}
def xmlrpc(in_=(), out=(type(None),)):
# in_:输入数据的类型, out输出数据的类型
def _xmlrpc(function):
# 注册签名,本质上就是构建了一个字典,以函数名为key,输入参数和输出参数的类型为value
func_name = function.__name__
rpc_info[func_name] = (in_, out)
def _check_types(elements, types):
"""用来检查类型的子函数。"""
if len(elements) != len(types):
# 检查参数数量与要验证的参数数量
raise TypeError(