如何在没有调用abs的情况下将b添加到b的绝对值

Jam*_*ith 0 python function

我在定义一个函数时遇到了一些问题.我试图在没有调用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)
Run Code Online (Sandbox Code Playgroud)

Tim*_*ker 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
Run Code Online (Sandbox Code Playgroud)


Ign*_*ams 5

您正在寻找的解决方案(由于您沉迷于“消极”的想法而被忽视)如下:

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)
Run Code Online (Sandbox Code Playgroud)

请注意用于调用函数的括号仅位于最后一行。