ste*_*ten -2 python comparison eval
有没有办法评估比较运算符作为字符串传递的比较。没有做很多if-else的。铁
def cmp(arg1, op, arg2) : ......
Run Code Online (Sandbox Code Playgroud)
进而 :
cmp(5, "==", 6)
cmp(7, ">", 6)
cmp(12, "<=", 34)
cmp("abc", "==", "bad")
Run Code Online (Sandbox Code Playgroud)
小智 7
您应该避免使用 eval,而是使用 operator 模块。
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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1185 次 |
最近记录: |