El objeto de fracción no tiene __int__ pero int (Fracción (...)) todavía funciona

En Python, cuando tiene un objeto, puede convertirlo en un entero utilizandoint función.

Por ejemploint(1.3) volverá1. Esto funciona internamente mediante el uso de__int__ método mágico del objeto, en este caso particularfloat.__int__.

En pythonFraction los objetos se pueden usar para construir fracciones exactas.

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

Fraction los objetos carecen de__int__ método, pero aún puedes llamarint() en ellos y recuperar un número entero sensible. Me preguntaba cómo era posible esto sin__int__ Método que se está definiendo.

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

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta