predict is int
überprüft, ob die ganze Zahl die gleiche Identität wie das Ganzzahl-Objekt hat. Es tut nicht. Der Typ dieser Ganzzahl ist jedoch gleich das Ganzzahl-Objekt. Überprüfen Sie, ob der Typ der Ganzzahl dem Ganzzahl-Objekt entspricht.
>>> type(2) == int
True
können Sie dieses Kontroll erweitern auch isinstance()
mit der integrierten Funktion Subklassen zu handhaben:
>>> isinstance(2, int)
True
>>> isinstance(True, int)
True
Der zweite Test prüft, ob True
ist eine Instanz einer ganzen Zahl. Da bool
eine Unterklasse von int
ist, ist dies genau. Dies ist nützlich für benutzerdefinierte Klassen - wenn Sie eine Person
Klasse mit einer Customer
Unterklasse haben, wird isinstance()
Ihnen sagen, dass ein Customer
Objekt auch ein Person
ist. Allerdings sind nicht alle Person
Objekte sind Customer
Objekte, so ist es nicht kommutativ (wie unten gezeigt mit bool
und einer ganzen Zahl):
>>> isinstance(2, bool)
False
Sie haben die Bedeutung von 'is' falsch verstanden. Versuchen Sie http://stackoverflow.com/questions/13650293/understanding-pythons-is-operator –