python运算符使用方法_在python2中如何使用“==”运算符,而不使用__eq __()方法?...

Python

prefers to use rich comparison functions(__eq__,__lt__,__neq__等),但如果这些不存在,那么它会回到使用一个比较函数(__cmp__,在Python 3中删除):

These are the so-called “rich comparison” methods, and are called for comparison operators in preference to __cmp__() below.

PyTypeObject PyInt_Type = {

...

(cmpfunc)int_compare, /* tp_compare */

...

0, /* tp_richcompare */

在Python 3中,integer type(现在很长)只实现了一个丰富的比较功能,因为Python 3支持__cmp__:

PyTypeObject PyLong_Type = {

...

long_richcompare, /* tp_richcompare */

这就是为什么(123).__ eq__不存在.相反,Python 2在测试两个整数的相等性时会回到(123).__ cmp__:

>>> (1).__eq__(2)

Traceback (most recent call last):

File "", line 1, in

AttributeError: 'int' object has no attribute '__eq__'

>>> (1).__cmp__(2)

-1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值