在这段代码中,当执行a = A()和b = B()时,obj参数中传递了什么?

时间:2019-02-08 03:25:32

标签: python

class A:
    x=1
    def __add__(self, obj):
        if isinstance(obj,A):
            return self.x+obj.x
        return "False"

class B(A):
    x=2

a=A()
b=B()
print(a+b)

1 个答案:

答案 0 :(得分:0)

add方法使用self(添加中的第一个对象)和另一个other

例如:

class A:
    def __init__(self, x):
        self.x=x
    def __add__(self, obj):
        if isinstance(obj,A):
            return self.x+obj.x
        raise NotImplementedError

a = A(3)
b = A(4)
res = a + b  # this is essentially a.__add__(obj=b) 
             # self is implicitly the object a
# res == 7