1. 程式人生 > >python3中替換python2中cmp函式的新函式分析(lt、le、eq、ne、ge、gt)

python3中替換python2中cmp函式的新函式分析(lt、le、eq、ne、ge、gt)

作者: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

ge(a, b)相當於 a>= b

函式的返回值不是布林哦。這點需要注意,還是跟cmp一樣返回的是數值哦。