蟒蛇keyworded lambda函数
问题描述:
下面是一个简单的λ表达蟒蛇keyworded lambda函数
var= lambda x: x*x
print(var(4))
简单我的拉姆达对象存储到一个变量使用var来完成数学。
-
我的问题:
如何创建函数的使用拉姆达的作为keyworded参数,并使用它们正确瓶坯某些任务
在这段代码中,我得到类型错误:“STR”对象不可回收
def test1(**kwargs):
for fart in kwargs:
print(fart) #output is == key
fart(4) #fart(4)==TypeError
test1(key=lambda x: x*x)
答
因为kwargs
是dict
您收到此错误。在你的情况,这个字典是这样的:
{'key': lambda x: x*x}
所以,当你遍历dict
,你真的在键盘上,这在kwargs
的情况下,是字符串迭代(和字符串不是调用)。
如果你真的想要得到的拉姆达,那么你应该在kwargs
在这个钥匙来访问值:
for fart in kwargs:
print(fart)
print(kwargs[fart[](4))
当然,还有一个更简单的方法来做到这一点:
for fart, shart in kwargs.items():
print(fart)
print(shart(4))
答
kwargs
是一本字典。迭代字典会为您提供关键值。
WHN你重复,只是使用items()
或values()
如果你希望lambda函数的所有键:
for fart in kwargs:
print(kwargs[fart](4))
或值:
for fart in kwargs.values():
print(fart(4))
更合理,你需要打电话给你拉姆达什么就是用钥匙key
:
def test1(**kwargs):
print(kwargs["key"](4))
test1(key=lambda x: x*x)
这里打印16
为什么你的元素叫屁?大声笑 –
我猜OP好几个小时都在努力做这个工作。我会自己使用更严格的变量名:) –
我怀疑他必须在该变量中保存超过4GB的数据后包含'r' – inspectorG4dget