Может ли кто-нибудь объяснить мне, почему isinstance()
возвращает True в следующем случае? Я ожидал False, когда писал код.
print isinstance(True, (float, int))
True
Мое предположение заключалось бы в том, что его внутренний подкласмент python, как ноль, так и один - float float или int - оба оцениваются при использовании в качестве логического, но не знают точной причины.
Каким будет самый питонический способ решить такую ситуацию? Я мог бы использовать type()
, но в большинстве случаев это считается менее pythonic.