gpt4 book ai didi

python - 装饰器可以在运行时使用 lambda 表达式吗?

转载 作者:太空狗 更新时间:2023-10-29 17:43:37 28 4
gpt4 key购买 nike

<分区>

def attrs(**kwds):
def decorate(f):
for k in kwds:
setattr(f, k, kwds[k])
return f
return decorate

@attrs(argument_types=(int, int,), returns=int)
def add(a, b):
return a + b

这里我需要 add() 能够显示其可接受的参数类型。但是我可以在运行时做这样的事情吗?

ladd=[]
for x in range(0,10):

@attrs(argument_types=int, returns=int,default_parameter1 = x)
exp = lambda : add(a,x)
ladd.append(exp)

ladd=[]
for x in range(0,10):

@attrs(argument_types=int, returns=int,default_parameter1 = x)
addx = functools.partial(add, 2)
ladd.append(addx)

我需要那些可以在运行时使用“decoratored”参数绑定(bind)生成的函数


嗯,这是错误信息,我认为上面的代码无法运行,但我从未尝试将其粘贴到 python 中进行测试......

>>> ladd=[]
>>> for x in range(0,10):
... @attrs(argument_types=int, returns=int,default_parameter1 = x)
... exp = lambda : add(a,x)
File "<stdin>", line 3
exp = lambda : add(a,x)
^
SyntaxError: invalid syntax
>>> ladd.append(exp)
File "<stdin>", line 1
ladd.append(exp)
^
IndentationError: unexpected indent
>>>

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