python3中替換python2中cmp函式的新函式分析(lt、le、eq、ne、ge、gt)
阿新 • • 發佈:2019-01-02
作者:sushengmiyan
在python2中我們經常會使用cmp函式來比較一些東西,但是在python3中,你再來使用這個函式的時候,發現就報錯了,提示找不到這個函式,這是為啥呢?嗯,新版的python已經捨棄之。
在python3中使用時報錯資訊如下:
Syntax Error: if cmp(os.getcwd(), os.path.dirname(os.sys.argv[0])) <> 0:: Test.py, line 34055
提示找不到cmp函數了,那麼在python3中該如何使用這個函式呢?
看python的幫助文件,在oprater這個模組中有了這麼幾個函式
operator.lt(a, b) operator.le(a, b) operator.eq(a, b) operator.ne(a, b) operator.ge(a, b) operator.gt(a, b) operator.__lt__(a, b) operator.__le__(a, b) operator.__eq__(a, b) operator.__ne__(a, b) operator.__ge__(a, b) operator.__gt__(a, b)
這幾個函式就是用來替換之前的cmp的,之前使用cmp的同胞們,咱們以後就換上面這些函式咯。
先簡單說下這幾個函式的意思吧。
lt(a, b) 相當於 a < b
le(a,b)
相當於 a
<= b
eq(a,b)
相當於 a
== b
ne(a,b)
相當於 a
!= b
gt(a,b)
相當於 a
> b
函式的返回值不是布林哦。這點需要注意,還是跟cmp一樣返回的是數值哦。