Как добавить a к абсолютному значению b без вызова abs - PullRequest
0 голосов
/ 01 сентября 2011

У меня небольшая проблема с определением функции.Я пытаюсь добавить абсолютное значение b без вызова abs

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)

Ответы [ 2 ]

7 голосов
/ 01 сентября 2011

Вам не нужно импортировать 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
4 голосов
/ 01 сентября 2011

Решение, которое вы ищете, которое вы пропускаете, потому что вы одержимы идеей «негатива», выглядит следующим образом:

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)

Обратите внимание, что парены, используемые для вызова функции, находятся только в последней строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...