Python 2 在比较不同类型的对象时的行为可能会令人困惑,但它基于语言规范提供的实现细节。
比较不同类型的对象时,Python 2使用以下顺序:
至说明:
print "100" < "2" # True (lexicographic) print "5" > "9" # False (lexicographic) print "100" < 2 # False (numeric first) print 100 < "2" # True (numeric first, lexicographic second) print 5 > "9" # False (lexicographic) print "5" > 9 # True (numeric first, lexicographic second) print [] > float('inf') # True (non-numeric ordering) print () > [] # True (non-numeric ordering)
此行为是由 Python 2 的 CPython 实现强制执行的。语言规范规定不同类型的对象“任意但一致”地排序,从而使直至实现的详细信息。
在 Python 3 中,整数和字符串之间的比较会引发错误。 Python 的其他实现也可能有稍微不同的行为。
以上是Python 2 如何比较不同类型的对象?的详细内容。更多信息请关注PHP中文网其他相关文章!