范围排序和不等式比较

时间:2015-05-19 20:23:42

标签: python-3.x range inequality

我试图重新创建Python的range作为学习练习,并注意到范围具有range.__gt__range.__ge__等属性。它是在范围内专门定义的,因为范围也有8个属性,其限定名称为object.__...__

我想知道范围比较用于什么。 range(*x) <= range(*y)的所有尝试都会引发TypeError: unorderable types: range() > range()

1 个答案:

答案 0 :(得分:1)

Python 3范围对象定义了以下丰富的比较(取自C source):

EQ

正如您所看到的,实际实现的唯一比较是Py_RETURN_NOTIMPLEMENTED和{{1}},这些比较用于不等式和相等。其他比较,如大于等于,大于等等,都是{{1}},因此虽然它们是“技术上”实现的(如在内置对象中定义比较方法),但它们会抛出NotImplementedError。 / p>