1

在这个关于遍历一系列操作符的线程之后,我还想以相同的顺序处理一元操作符。我使用了一个 lambda 函数来摆脱第二个参数,但是 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)))
4

1 回答 1

1

只需将二元和一元运算符的处理分开即可。

a, b = 5, 7
# binary ops
for op in [('+', operator.add), ('-', operator.sub]:
    print("{} {} {} = {}".format(a, op[0], b, op[1](a, b)))

#unary ops
for op in [('-', operator.neg]:
    print("{} {} = {}".format(op[0], a, op[1](a)))
于 2015-12-16T14:47:00.973 回答