我在python中有接受两个输入、进行一些操作并返回两个输出的函数。我想重新排列输出参数,因此我围绕原始函数编写了一个包装器函数,该函数用新的输出顺序创建一个新函数
def rotate(f):
h = lambda x,y: -f(x,y)[1], f(x,y)[0]
return h
f = lambda x, y: (-y, x)
h = rotate(f)
但是,这将给出一条错误消息:
^{pr2}$x
是lambda表达式的参数,那么为什么必须定义它?在
预期的行为是h
应该是与lambda x,y: (-x,-y)
相同的新函数
优先级有问题。只需使用额外的括号:
需要在lambda表达式周围添加括号:
否则,Python将代码解释为:
^{pr2}$并且
h
是一个2元组。在相关问题 更多 >
编程相关推荐