从一个实例访问另一个实例的实例变量

时间:2016-11-19 12:21:37

标签: python oop

我正在学习python。假设我有一个名为Dog的类,以及两个名为FidoMolly的实例。我想通过使用+重载__add__运算符来更改第二个实例的属性,以便在我键入Fido+Molly时 将设置Molly.touched属性。如何从一个实例访问另一个实例的属性部署在python中?

1 个答案:

答案 0 :(得分:3)

我认为您对__add__特殊方法的工作原理感兴趣。从本质上讲,它的作用是x.__add__(y),其中xy可以是实例对象。请参阅其实施的示例here

您需要在__add__()中重载Dog以返回更新y.touched属性的内容。例如:

class Dog(object):

    def __init__(self, touched):
        self.touched = touched

    def __add__(self, other):
        other.touched = other.touched + self.touched 
        #return None                                    # optional, explicit

fido = Dog(1)
molly = Dog(2)

fido + molly
molly.touched
# 3