有没有办法评估比较运算符作为字符串传递的比较。没有做很多if-else的。 F.e。
def cmp(arg1, op, arg2) : ......
然后:
cmp(5, "==", 6)
cmp(7, ">", 6)
cmp(12, "<=", 34)
cmp("abc", "==", "bad")
答案 0 :(得分:3)
您应该避免使用eval,而是使用操作员模块。
import operator
ops = {
'<': operator.lt,
'<=': operator.le,
'==': operator.eq,
'!=': operator.ne,
'>=': operator.ge,
'>': operator.gt
}
def cmp(arg1, op, arg2):
operation = ops.get(op)
return operation(arg1, arg2)