0
我正在学习python。假设我的类名为Dog
,并且有两个名为Fido
和Molly
的实例。我想通过使用__add__
重载+
运算符来更改二次实例的属性,所以当我输入Fido+Molly
时,将会设置Molly.touched
属性。如何从一个实例访问另一个在Python中部署的实例属性?从一个实例访问实例变量到另一个实例
我正在学习python。假设我的类名为Dog
,并且有两个名为Fido
和Molly
的实例。我想通过使用__add__
重载+
运算符来更改二次实例的属性,所以当我输入Fido+Molly
时,将会设置Molly.touched
属性。如何从一个实例访问另一个在Python中部署的实例属性?从一个实例访问实例变量到另一个实例
我想你对__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
'return None'是多余的,顺便说一下。 – TigerhawkT3
是的,但对于不熟悉Python的人来说是明确的。我会发表评论 – pylang