如何在python中实现内置对象与创建的类之间的操作?

时间:2018-07-10 01:40:40

标签: python class oop operator-overloading

假设我想使用__mul__方法定义一个类,例如:

class A():
    def __init__(self,*arg,**kwarg):
        #some code
    def __mul__(self,other):
        #some code

如果我A()*2会给我一个结果。但是,当我尝试另一种方法(2*A())时,它不起作用。 有没有办法在操作周围实现这种其他方式?

1 个答案:

答案 0 :(得分:5)

您将使用object.__rmul__(self, other)

class A():
    def __init__(self, *arg, **kwarg):
        #some code
    def __mul__(self, other):
        #some code
    def __rmul__(self, other):
        return self * other

https://docs.python.org/3/reference/datamodel.html