保存装饰函数的签名
kwargs = dict((k,int(v))在kwargs.items())中的k,v 返回f(*args,** kwargs) 返回g 当装饰按预期运行时,装饰函数的签名被“ [*kwargs''替换,丢失了有关原始参数的信息。满足:
手动将签名复制到docString中。为每个特定的签名创建一个新的装饰器。
exec。解决方案:导入装饰器 @Decorator.decorator def args_as_ints(f, *args,** kwargs): args = [x in args中的x] kwargs = dict((k,int(v))在kwargs.items())中的k,v return f(*args, **kwargs)
This decorator preserves the original function's signature by passing it as arguments to the wrapped function.def args_as_ints(f):
def g(*args, **kwargs):
args = [int(x) for x in args]
kwargs = dict((k, int(v)) for k, v in kwargs.items())
return f(*args, **kwargs)
return g
@args_as_ints def funny_function(x,y,z = 3): “”“计算x*y 2*z”“” 返回x*y 2*z python 3.4:
kwargs = dict((k,int(v))在kwargs.items())中的k,v 返回func(*args,** kwargs) 通过使用这些技术,Decorator可以在保留其原始签名时增强功能功能,从而确保代码库中的清晰度和一致性。免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3