有人可以给我一个解释为什么isinstance()
在下面的情况下返回True?我在编写代码时预计会出现False。Python使用isinstance比较布尔值和int
print isinstance(True, (float, int))
True
我的猜测是,它的蟒蛇的内部子类,因为零和一 - wheter float或INT - 布尔使用时既评估,但不知道确切的原因。
什么是解决这种情况的最pythonic方法?我可以使用type()
,但在大多数情况下,这被认为是较不pythonic。
这是第二种情况。这意味着必须考虑这些内置类型的比较顺序 - 可以理解的是继承,但对于python来说却很不寻常。 – jake77