4
在Python中,当有对象时,可以使用int
函数将其转换为整数。例如int(1.3)
将返回1
。这可以通过使用对象的__int__
魔术方法在内部工作,在这种特殊情况下为float.__int__
。Fraction对象没有__int__但是int(Fraction(...))仍然有效
在Python中Fraction
对象可以用来构造精确的分数。
from fractions import Fraction
x = Fraction(4, 3)
Fraction
对象缺少__int__
方法,但你仍然可以拨打他们int()
,并得到一个合理的整数回来。我想知道如何在没有定义__int__
方法的情况下实现这一点。
In [38]: x = Fraction(4, 3)
In [39]: int(x)
Out[39]: 1
我的一位朋友找到了一个指向'__trunc__'何时出现的CPython源的链接。如果您不介意,我会将其编辑为您的答案。 – Ffisegydd
有趣的是,这不是Python文档中的任何地方 - 相反,它的唯一参考是在PEP 3141上:https://www.python.org/dev/peps/pep-3141/ – jsbueno