Python以两种方式将int乘以实例

时间:2011-11-22 10:55:03

标签: python operator-overloading

好的,所以我正在创建一个Vector类(数学向量,如[1,3]),我想将一个Vector实例与一个int相乘。首先,我实现了__mul__方法,它工作正常。但是,这并不能解决问题。

a = Vector(4,3)  # Creates a vector, [4,3]
a*4     # This works fine, and prints [16,12]
4*a     # This, however, creates a TypeError (Unsupported operans type(s)).

现在,这是可行的,但它可以更容易两种方式工作。有没有办法在Vector类中执行此操作?

1 个答案:

答案 0 :(得分:8)

你的Vector类可以提供__rmul__() 反射的乘法方法,这是在左操作数不支持操作时用于实现乘法的方法。