黑马程序员技术交流社区

标题: 【广州Python】python3中替换python2中的cmp函数 [打印本页]

作者: xianqiuhua    时间: 2018-6-27 15:14
标题: 【广州Python】python3中替换python2中的cmp函数
本帖最后由 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模块里面其他函数的用法。











欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2