1
После этой темы около iterating through a sequence of operators, я хочу также позаботиться о унарных операторах в той же последовательности. Я использовал функцию лямбда, чтобы избавиться от второго аргумента, но есть ли специальные инструменты/библиотеки для этого в Python?Python двоичный для унарной функции
a, b = 5, 7
for op in [('+', operator.add), ('-', lambda x, y: operator.neg(x))]:
print("{} {} {} = {}".format(a, op[0], b, op[1](a, b)))
Я думаю, что вы должны обрабатывать унифицированную и двоичную раздельно, вы хотите получить '5 - 7 = -5'? –
@bigOTHER Да, это то, что я хочу/получаю. Конечно, я могу сделать отдельный цикл для унарных операционных систем. Но, возможно, для этого есть более Pythonic way/some standard library. (В C++ у вас есть bind1st и т. Д.) –
альтернативой bind1st в python является 'functools.partial', но' lambda' выполняет задание магически, поэтому предпочитайте его. Тем не менее, в вашем случае, просто отделите его, в python base readabilty counts –