为什么我在Python中遇到此属性错误?

Eri*_*a E 0 python

在此先感谢任何帮助,我知道这可能是一个新问题,但我找不到任何通过搜索似乎回答我的问题.这是追溯的相关部分:

  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'
Run Code Online (Sandbox Code Playgroud)

我对这意味着什么感到困惑....什么是'功能'对象?另外,为什么从一个比比较大的行调用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
Run Code Online (Sandbox Code Playgroud)

Kev*_*vin 5

从错误中'function' object has no attribute 'int_id',我猜测函数对象正在与行中的卡进行比较if (card1 > card2):.如果其中一张卡被错误地指定为功能,则可能会发生这种情况.例如,card1 = getMyOtherCard而不是card1 = getMyOtherCard().