我希望能夠添加到自定義類的風格:添加到自定義類在Python
x=myclass("Something", 7)
x + 3
7,當然,對應與我想增加一個內財產通過添加到它。
該類包含引用列表中某個位置的數字。這看起來像是可以用普通整數完成的事情,但我需要它作爲一個單獨的類型。這一切都是爲了模仿舊的遊戲語言。該類是它的'變量'類,變量的值存儲在上述列表中。顯然,在較舊版本的遊戲中,通過對變量對象實例進行數學運算以獲取不同的變量,數組被僞造。所以我試圖效仿。
我希望能夠添加到自定義類的風格:添加到自定義類在Python
x=myclass("Something", 7)
x + 3
7,當然,對應與我想增加一個內財產通過添加到它。
該類包含引用列表中某個位置的數字。這看起來像是可以用普通整數完成的事情,但我需要它作爲一個單獨的類型。這一切都是爲了模仿舊的遊戲語言。該類是它的'變量'類,變量的值存儲在上述列表中。顯然,在較舊版本的遊戲中,通過對變量對象實例進行數學運算以獲取不同的變量,數組被僞造。所以我試圖效仿。
如果你想支持另外的類的實例,你需要在你的類中定義的__add__()
方法:
例子:
>>> a = MyClass(7)
>>> a + 3
10
也支持3 + a
,定義__radd__()
方法。
如果你希望能夠使用
a += 3
可以定義__iadd__()
更新MyClass
實例x
屬性。
如果您希望類實例的行爲與具有其他方法和屬性的整數類似,那麼您應該簡單地從int
派生。
你要做的是操作員重載。您可以通過重載__add__
方法,像這樣在Python新式類做到這一點:
>>> class Test(object):
... def __init__(self): self.prop = 3
... def __add__(self, x):
... return self.prop + x
...
>>> Test() + 4
7
>>>
重讀我寫的內容,在添加時我可能不應該修改'prop'屬性。哎呦。 – 2012-03-23 13:13:29
的類包含一個數字,指的是位置在列表中。這看起來像是可以用普通整數完成的事情,但我需要它作爲一個單獨的類型。這一切都是爲了模仿舊的遊戲語言。該類是它的'變量'類,變量的值存儲在上述列表中。顯然,在較舊版本的遊戲中,通過對變量對象實例進行數學運算以獲取不同的變量,數組被僞造。所以我試圖效仿@。@ – Kelketek 2012-03-23 13:11:42
仍然不確定需求是什麼,但是從這個評論看來,似乎來自'int'的dervie最簡單。 – 2012-03-23 13:16:01
@凱爾克泰克:我已經將你的評論轉移到了問題上,這就是它所屬的問題。 – 2012-03-23 13:16:17