python vergleicht boolean und int mit isinstance
Kann mir jemand eine Erklärung geben, warumisinstance()
gibt im folgenden Fall True zurück? Ich habe Falsch erwartet, als ich den Code geschrieben habe.
print isinstance(True, (float, int))
True
Meine Vermutung wäre, dass die interne Unterklasse des Pythons als null und eins - ob float oder int - ausgewertet wird, wenn sie als boolescher Wert verwendet wird, ohne den genauen Grund zu kennen.
Was wäre der pythonischste Weg, um eine solche Situation zu lösen? Ich könnte benutzentype()
aber in den meisten Fällen wird dies als weniger pythonisch angesehen.