Python内置运算符扩展

时间:2011-06-06 20:26:31

标签: python operator-overloading operator-keyword

我创建了一个名为aF的float子类,它包含额外的信息和方法。我需要在这个类上创建操作,特别是我需要能够用这个aF来计算普通浮点数的乘积。

如何扩展float的*运算符,以便float *和augmentedFloat返回一个符合我需要的augmentedFloat?

我知道我必须写一些像def float.__mul__()这样的东西,但我担心我会删除运算符*的标准定义,对于浮点数。

你能帮助我吗?

由于

1 个答案:

答案 0 :(得分:2)

我们假设ffloatafAugmentedFloat。要使乘法af * ff * af都有效,您必须覆盖__mul__()__rmul__()方法。您不需要向内置float类型添加任何方法 - 这在Python中是不可能的。