我正在学习python。假设我有一个名为Dog
的类,以及两个名为Fido
和Molly
的实例。我想通过使用+
重载__add__
运算符来更改第二个实例的属性,以便在我键入Fido+Molly
时
将设置Molly.touched
属性。如何从一个实例访问另一个实例的属性部署在python中?
答案 0 :(得分:3)
我认为您对__add__
特殊方法的工作原理感兴趣。从本质上讲,它的作用是x.__add__(y)
,其中x
和y
可以是实例对象。请参阅其实施的示例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