Fraction-Objekt hat kein __int__, aber int (Fraction (…)) funktioniert immer noch

enn Sie in Python ein Objekt haben, können Sie es mit @ in eine Ganzzahl konvertiereint Funktion.

Zum Beispielint(1.3) wird zurückkehren1. Dies funktioniert intern mit dem__int__ magische Methode des Objekts, in diesem speziellen Fallfloat.__int__.

In PythonFractionit @ -Objekten können exakte Brüche erstellt werden.

from fractions import Fraction
x = Fraction(4, 3)

Fraction Objekte haben kein__int__ -Methode, aber Sie können immer noch @ aufrufint() auf sie und bekommen eine sinnvolle ganze Zahl zurück. Ich habe mich gefragt, wie das möglich ist, ohne__int__ Methode wird definiert.

In [38]: x = Fraction(4, 3)

In [39]: int(x)
Out[39]: 1

Antworten auf die Frage(2)

Ihre Antwort auf die Frage