Python乘以int实例两种方式

Python乘以int实例两种方式

问题描述:

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

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类中有没有办法做到这一点?

+0

这在[文档](http://docs.python.org/reference/datamodel.html#emulating-numeric-types)中有解释。 –

+0

这已在另一篇文章中解决。 [http://*.com/questions/6892616/python-multiplication-override][1] [1]:http://*.com/questions/6892616/python-乘法覆盖 – Eduardo

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