在Python中重载int()

时间:2012-07-20 08:10:38

标签: python class operator-overloading

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

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

2 个答案:

答案 0 :(得分:17)

根据以下示例覆盖__int__魔术方法......

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

t = Test(5)
print( int(t) )
# 10

答案 1 :(得分:7)

覆盖__int__()方法。