2012-07-20 51 views
6

假設我在Python 3中有一個基本的類,它代表了一些類似數字的數據類型。我想這樣做,當我有一個實例,這個類的實例,我可以調用int(x),並讓它調用我的轉換函數返回整數部分。在Python中重載int()

我確定這很簡單,但我似乎無法找到如何去做。

回答

13

您覆蓋__int__魔術方法按照下面的例子...

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

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

重寫__int__()方法。

+0

我是在假設這是新的Python 3糾正? – 2012-07-20 08:52:01

+2

@Joel:[一點都不]。(http://docs.python.org/reference/datamodel.html#object.__complex__) – 2012-07-20 08:53:28

+0

你每天都會學到新的東西!雖然我很驚訝,但在閱讀文檔時忽略了這一點:P – 2012-07-20 15:50:13