Ffi*_*ydd 4 python int fractions python-internals
在Python中,当您有一个对象时,可以使用该int函数将其转换为整数.
例如int(1.3)将返回1.__int__在这种特殊情况下,这通过使用对象的魔术方法在内部工作float.__int__.
在Python中,Fraction对象可用于构造精确的分数.
from fractions import Fraction
x = Fraction(4, 3)
Run Code Online (Sandbox Code Playgroud)
Fraction对象缺少一个__int__方法,但你仍然可以调用int()它们并获得一个合理的整数.我想知道如何在没有__int__定义方法的情况下实现这一点.
In [38]: x = Fraction(4, 3)
In [39]: int(x)
Out[39]: 1
Run Code Online (Sandbox Code Playgroud)
使用该__trunc__方法.
>>> class X(object):
def __trunc__(self):
return 2.
>>> int(X())
2
Run Code Online (Sandbox Code Playgroud)
__float__ 不起作用
>>> class X(object):
def __float__(self):
return 2.
>>> int(X())
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
int(X())
TypeError: int() argument must be a string, a bytes-like object or a number, not 'X'
Run Code Online (Sandbox Code Playgroud)
CPython源显示何时__trunc__使用.
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |