Während über Python Infinity lesen, ich quer durch das kam:Warum gibt float ('Inf') float ('Inf') false in Python zurück?
>>>float('Inf') == float('Inf')
True
>>>float('Inf') is float('Inf')
False
>>>float('Inf') is not float('Inf')
True
ich, dass gleich Werke verstehen, aber ich frage mich, was float('Inf')
tatsächlich zeigt auf, dass machen die is
Test Rückkehr False
? Ist es jedes Mal anders, wenn Sie float('Inf')
anrufen?
EDIT: Ich frage nicht über den Unterschied zwischen ==
und is
. Ich frage nach den Implementierungsdetails von float('Inf')
und der Art dieses Objekts. setzen,
Mögliche Duplikate von [Gibt es einen Unterschied zwischen \ '== \' und \ 'is \' in Python?] (Http://stackoverflow.com/questions/132988/is-there-a-difference-between) -und-ist-in-python) – GingerPlusPlus
Das ist, weil "ist" Speicheradresse von zwei Objekten vergleicht, während '==' die Objekte selbst vergleicht. || Wie oben, während Sie mit 'is' vergleichen, erstellen Sie tatsächlich zwei verschiedene Objekte mit derselben Struktur im Speicher. Zwei Objekte haben die gleiche Struktur, aber sie sind nicht gleich, da die Adressen unterschiedlich sind. Denke es wie das Universum. –
Ja, das verstehe ich, aber auf welche Adresse weist es hin? –