为了账号安全,请及时绑定邮箱和手机立即绑定

关于实例p1,p2的指向

class Programer(object):    def __init__(self,name,age):        self.name = name        if isinstance(age, int):            self.age = age        else:            raise Exception('age must be int')    def __eq__(self, other):        if isinstance(other, Programer):            if self.age == other.age:                return Ture            else:                return False        else:            raise Exception('the type of object must be Programer')    def __add__(self, other):        if isinstance(other,Programer):            return self.age + other.age        else:            raise Exception('the type og object must be Programer') if __name__ == '__main__':    p1 = programer('abc', 54)    p2 = programer('bbb', 25)    print p1 == p2    print p1.age + p2.age 

 关键点不明白,p1,p2都是 Programer 的实例,当调用 __eq__ 和 __add__ 方法的时候,self 是 指的实例, 为什么是 p1 而不是 p2 ,   p2 又是如何 被传进去变成 other 的 还望老师解答一二

正在回答

1 回答

self也可以是p2啊,两个实例运算,它会在当前类中找出重写的方法进行计算,没有的话就会在父类寻找

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于实例p1,p2的指向

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信