我創建了一個名爲aF的浮點子類,其中包含額外的信息和方法。我需要在這個類上創建操作,特別是我需要能夠用這個aF來計算正常浮點數的乘積。Python內置運算符擴展
如何擴展float的*
運算符,以便float * augmentedFloat返回符合我需要的augmentedFloat?
我知道我必須寫一些類似def float.__mul__()
的東西,但我擔心我會刪除浮點數的運算符*
的標準定義。
你能幫我嗎?
感謝
我創建了一個名爲aF的浮點子類,其中包含額外的信息和方法。我需要在這個類上創建操作,特別是我需要能夠用這個aF來計算正常浮點數的乘積。Python內置運算符擴展
如何擴展float的*
運算符,以便float * augmentedFloat返回符合我需要的augmentedFloat?
我知道我必須寫一些類似def float.__mul__()
的東西,但我擔心我會刪除浮點數的運算符*
的標準定義。
你能幫我嗎?
感謝
假設f
是float
和af
是AugmentedFloat
。爲了使乘法運算af * f
和f * af
有效,您必須覆蓋__mul__()
和__rmul__()
方法。您不需要將任何方法添加到內置的float
類型 - 這在Python中甚至是不可能的。
謝謝,它正在工作! – vkubicki 2011-09-04 10:23:16
嘗試在您的'AugmentedFloat'類中定義'__rmul__'方法 – 2011-06-06 20:28:16