A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 xianqiuhua 于 2018-6-27 16:02 编辑

python3中替换python2中cmp函数

我们知道python中内置函数cmp(x, y)用于比较两个对象, 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
但是我们在python3中调用cmp函数时,会出现以下错误:


原因是在python3已经没有cmp函数,被operator模块代替,我们要比较两个对象时,需要导入operator模块。
[Python] 纯文本查看 复制代码
import operator

a = 'hello'
b = 'python'
# ret = operator.lt(a, b)
# ret = operator.gt(a, b)
ret = operator.eq(a, b)

print(ret)

以下几个函数就是用来cmp函数的,之前习惯在python2中使用cmp的朋友们,以后我们在python3中就要使用operator模块给我们提供的函数,下面简单解释下几个常用的比较函数的意思。
[Python] 纯文本查看 复制代码
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

需要注意的是,以上函数的返回值是布尔类型。
当然,operator模块除了给我们提供了以上的比较运算函数之外,还有逻辑运算、数学运算以及顺序运算。
有兴趣的朋友可以通过 help(operator) 或者 Ctrl + 鼠标左键点击 operator 来查看operator模块里面其他函数的用法。






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马