gpt4 book ai didi

python - 装饰器将给定的 kwargs 转换为函数的 attrs

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:56 24 4
gpt4 key购买 nike

我大部分时间都使用这样的构造:

def function(some,params):
pass
function.arg1 = val1
function.arg2 = val2

但它并不完全干燥,如果我向这样的函数或方法添加了数十个参数,并且由于某种原因我需要更改函数名称,那么它会很烦人,因为我需要将所有 function 更改为例如function2。也许有一个内置的 python 装饰器,我可以这样使用:

@some_decorator(arg1=val1, arg2=val2, arg3=val3)
def function(some, params):
pass

更改函数名称(或用其他名称复制函数)时,这会节省我很多时间。有人知道 python 中是否有内置的东西吗?我知道创建这样的装饰器没什么大不了的,但是我必须将它包含在我的所有项目中,这样内置它就会容易得多。

最佳答案

这应该可以完成工作

from functools import wraps

def some_decorator(arg1, arg2):
def wrapper(func):

@wraps(func)
def inner_wrapper(*args, **kwargs):
func(*args, **kwargs)

inner_wrapper.arg1 = arg1
inner_wrapper.arg2 = arg2
return inner_wrapper

return wrapper

当然你可以将装饰器中的arg1arg2改为**kwargs,这样更方便。

关于python - 装饰器将给定的 kwargs 转换为函数的 attrs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23950238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com