在Python中重载int()

Lor*_*ing 10 python class operator-overloading

假设我在Python 3中有一个基本类,它代表一些类似数字的数据类型.我想这样做,当我有一个这个类的实例,我可以调用int(x)并让它调用我的转换函数来返回整数部分.

我确信这很简单,但我似乎无法找到如何做到这一点.

Jon*_*nts 19

您可以__int__按照以下示例覆盖魔术方法...

class Test:
    def __init__(self, i):
        self.i = i
    def __int__(self):
        return self.i * 2

t = Test(5)
print( int(t) )
# 10
Run Code Online (Sandbox Code Playgroud)


Ign*_*ams 7

覆盖该__int__()方法.

  • @Joel:[至少没有.](http://docs.python.org/reference/datamodel.html#object.__complex__) (2认同)