我编写了一个教育游戏,用户必须复制计算机提供的一块工厂。
要定义一个零件,一方面编码孔的数量,另一方面编码对角线上的线的粗细。例如,对于八角形工件hole = [3,0,0,3],line = [0,0,2,1]对一个零件进行编码,该零件在水平线上有3个孔,在垂直线上有厚度2的线,在对角线上有3个孔。中心可以由几条对角线管理,相同的零件可以由hole = [3,0,1,2],trait = [0,0,2,1]编码。
所以我重载了__eq __()方法,如下所示:
def __eq__(self, other):
nouveau_trous = self.trous
res=()
for i in range(len(nouveau_trous)):
if nouveau_trous[i] == 3 or nouveau_trous[i]==1:
nouveau_trous[i]=nouveau_trous[i]-1
retenue=1
res=(nouveau_trous,self.traits,retenue)
return res==other("trous“=法语中的"holes”)
当我尝试这样做的时候:
if __name__=="__main__":
p1=PieceModele(Canvas())
p2=PieceUsine(Canvas())
print(p1)
print(p2)
print(p1==p2)
print(p1==p2)我在控制台中得到了这个:
[3, 0, 3, 3][1, 1, 1, 0] 8
[0, 0, 0, 0][0, 0, 0, 0] 8
False
True我不明白为什么我的第二个print(p1==p2)是真的.
https://stackoverflow.com/questions/41309017
复制相似问题