我在定义一个函数时遇到了一些问题。我试图在没有调用abs
的情况下将b添加到b的绝对值from operator import add, sub
def a_plus_absolute_b(a, b):
"""Return a+abs(b), but without calling abs."""
if b < 0:
op = add(a, (b * -1))
else:
op = add(a, b)
return op(a, b)
答案 0 :(得分:7)
您无需为此导入add()
。
你为什么不这么做?
def a_plus_absolute_b(a, b):
"""Return a+abs(b), but without calling abs."""
if b < 0:
result = a - b
else:
result = a + b
return result
答案 1 :(得分:4)
您正在寻找的解决方案,因为您沉迷于“消极”的想法而忽略了这一点,如下所示:
from operator import add, sub
def a_plus_absolute_b(a, b):
"""Return a+abs(b), but without calling abs."""
if b < 0:
op = sub
else:
op = add
return op(a, b)
注意用于调用函数的parens如何仅在最后一行。