optimized mode, disable type checking
if not debug:
return func
其次,这里还对被包装函数的参数签名进行了检查,我们使用了 inspect.signature..., 2, 3)
>>> bound_values.arguments
OrderedDict([('x', 1), ('y', 2), ('z', 3)])
>>>
使用这个映射我们可以很轻松的实现我们的强制类型检查..., 2, 3)
>>> bound_values.arguments
OrderedDict([('x', 1), ('y', 2), ('z', 3)])
>>>
使用这个映射我们可以很轻松的实现我们的强制类型检查...@typeassert
def spam(x:int, y, z:int = 42):
print(x,y,z)
一个可能的原因是如果使用了函数参数注解,那么就被限制了。...如果注解被用来做类型检查就不能做其他事情了。而且 @typeassert 不能再用于使用注解做其他事情的函数了。 而使用上面的装饰器参数灵活性大多了,也更加通用。