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