作者:不得不无奈啊 | 来源:互联网 | 2022-12-02 17:32
我有以下代码:
def aggregate(self, **kwargs):
for node in self:
for prop, val in kwargs.values():
set_val = val(node) if callable(val) else val
setattr(node, prop, set_val)
return self
当我试图设置**kwargs
一个可调用的变量时,函数抛出此错误:
Message: TypeError("'function' object is not iterable",)
请帮忙.无法理解问题出在哪里
方法调用如下:
obj.aggregate(my_key=_test)
哪里_test
可以调用
1> ShadowRanger..:
你正在迭代.values()
,每个值都是一个单独的项目,但是你要拆包两个名字,prop
并且val
.有效地尝试分配时发生错误prop, val = _test
.
看起来你想要迭代.items()
,而不是.values()
.这样一来,prop
会"my_key"
和val
_test
预期.