использование аргумента key при написании функции python

Рейтинг: 0Ответов: 2Опубликовано: 21.08.2023

есть некая функция:

def more_than(a,b, key=None):
    return a > b

result = more_than(4, -6, abs)

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

как это сделать?

Ответы

▲ 8

Вы можете попробовать сделать что-то подобное:

def more_than(a, b, key=None):
    if key is not None:
        return key(a) > key(b)
    return a > b

В таком случае вы получите следующий результат:

print(more_than(4, -6))  # --> True
print(more_than(4, -6, abs))  # --> False

Здесь вы в функцию more_than передаёте третьим аргументом функцию abs (именно передаёте, а не вызываете). Внутри функции more_than вы уже вызываете функцию abs, обращаясь к ней через "псевдоним" key.

▲ 5

Без None:

def more_than(a, b, key=lambda x: x):
    return key(a) > key(b)