提前感谢您的帮助,我知道这可能是一个新手问题,但我无法通过搜索找到任何似乎可以回答我的问题的内容。这是回溯的相关部分:
File "war.py", line 183, in __battle
if (card1 > card2):
File "war.py", line 24, in __lt__
return self.int_id % 13 < other.int_id % 13
AttributeError: 'function' object has no attribute 'int_id'
我对这意味着什么感到困惑……什么是“功能”对象?另外,为什么要从大于比较的行中调用lt ?为什么现在这是一个问题,因为我对我的 Card 类(其中 card1 和 card2 是实例)进行了单元测试,包括所有丰富的比较运算符,并且它通过了?
这些是我的 Card 类中丰富的比较方法的定义(您可能会猜到,int_id 只是一个实例变量 int):
(对不起,下面的缩进搞砸了)
class Card():
def __init__(self, int_id):
self.int_id = int_id
def __lt__(self, other):
return self.int_id % 13 < other.int_id % 13
def __le__(self, other):
return self.int_id % 13 <= other.int_id % 13
def __eq__(self, other):
return self.int_id % 13 == other.int_id % 13
def __ne__(self, other):
return self.int_id % 13 != other.int_id % 13
def __gt__(self, other):
return self.int_id % 13 > other.int_id % 13
def __ge__(self, other):
return self.int_id % 13 >= other.int_id % 13