int 和 tuple 比较的行为
Behaviour of comparison between int and tuple
出于某种原因
999 < (0, 6, 7, 8)
计算结果为 True
事实上,所有元组似乎都大于所有整数。
根据 docs、
Instances of tuple
or list
can be compared only within each of their types.
是否有针对此行为的文档?是否发生了一些隐式转换?
根据您链接的文档,当它讨论将元组与其他类型进行比较时:
ordering comparison across these types gives an arbitrary order.
因此,听起来这种行为在 Python 2 中未定义(如果我错了请纠正我)。在 Python 3 中进行相同的比较会出现以下错误:
Traceback (most recent call last):
File "main.py", line 1, in <module>
print(999 < (0, 6, 7, 8))
TypeError: '<' not supported between instances of 'int' and 'tuple'
出于某种原因
999 < (0, 6, 7, 8)
计算结果为 True
事实上,所有元组似乎都大于所有整数。
根据 docs、
Instances of
tuple
orlist
can be compared only within each of their types.
是否有针对此行为的文档?是否发生了一些隐式转换?
根据您链接的文档,当它讨论将元组与其他类型进行比较时:
ordering comparison across these types gives an arbitrary order.
因此,听起来这种行为在 Python 2 中未定义(如果我错了请纠正我)。在 Python 3 中进行相同的比较会出现以下错误:
Traceback (most recent call last):
File "main.py", line 1, in <module>
print(999 < (0, 6, 7, 8))
TypeError: '<' not supported between instances of 'int' and 'tuple'