我最近才开始用 Python 编程,我一直在尝试创建一个简单的函数,它接受两个参数 a 和 b,并返回 a 和 |b| 之和的结果。我想返回 f(a, b) 而不仅仅是 f。我知道我在当前代码中将 f 指定为一个 int,因此当我运行时它会返回“int not callable error”。所以我必须将 f 指定为某种函数。我很确定我在这里遗漏了一些基本的东西,我只是不确定到底是什么。感谢您的帮助!
from operator import add, sub
def a_plus_abs_b(a, b):
"""Return a+abs(b), but without calling abs.
>>> a_plus_abs_b(2, 3)
5
>>> a_plus_abs_b(2, -3)
5
"""
if b < 0:
f = sub(a, b)
else:
f = add(a, b)
return f(a, b)
最佳答案
f = sub(a, b)
它不创建计算结果的函数,因此当您调用 f(a, b)
时,您调用的是一个整数。
要修复它,请将函数分配给一个三元内联函数,以根据 b
f = sub if b < 0 else add
关于Python 3.x - 返回另一个函数的简单函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48429427/