我有一个类DooDadX
,它是从另一个类DooDad
继承的。我试着看左边,self
,如果它是一个DooDadX
实例,它将是一个不同的颜色。你知道吗
我遇到的主要问题是我需要找出self
,在__mod__
,是否是DooDadX
实例。如果是,颜色将是绿色,如果不是,颜色将来自我继承的类。你知道吗
在我的测试代码中,DooDadX
在左边被调用。这应该改变颜色为绿色,但我得到的颜色蓝色。你知道吗
我可以链接我的所有代码,但它与测试代码约114行。如果这还不够,请告诉我。你知道吗
class DooDadX(DooDad):
def __init__(self, color, weight, value):
super().__init__(color, weight, value)
self._serial = "-" + str(self._serial)
self._name = " DooDadX "
def __mod__(self, other):
if self == DooDadX:
self._color = "green"
maxWeight = max(self._weight, other._weight)
rightValue = other._weight
newDooDadX = DooDadX(self._color, maxWeight, rightValue)
return newDooDadX
这是我的测试代码。你知道吗
if __name__=="__main__":
doodads = []
doodads.append(DooDad("red", 5, 10))
doodads.append(DooDad("red", 8, 9,))
doodads.append(DooDad("blue", 20, 15))
doodads.append(DooDad("green", 2, 5))
doodads.append(DooDadX("blue", 10, 12))
doodads.append(doodads[0] + doodads[1])
doodads.append(doodads[2] + doodads[0])
doodads.append(doodads[3] - doodads[1])
doodads.append(doodads[1] - doodads[3])
doodads.append(doodads[0] * doodads[1])
doodads.append(doodads[0] * doodads[2])
doodads.append(doodads[0] / doodads[3])
doodads.append(doodads[2] % doodads[4])
doodads.append(doodads[4] % doodads[2])
for doodad in doodads:
print(doodad)
更改此项:
由此:
如果您想测试self是否是} :
DooDadX
的实例,或者它是否是DooDadX
的任何继承类的实例,请按照@Joe的建议执行。如果要测试self是否只是DooDadX
的实例,请使用^{希望这个小小的区别能有所帮助。你知道吗
相关问题 更多 >
编程相关推荐