迭代列表时“方法”对象不可迭代

我正在编写一个程序来为我喜欢玩的纸牌游戏评分,并Game()使用以下方法进行以下课程:


def score(self):

    scores = []

    for name in self.players:

      score = name.score_round()

      scores.append(score)

    scores = pd.concat(scores)

    scores = scores.groupby('Player').Score.sum()

    return scores

self.players__init__是在游戏中所有玩家的方法中制作的列表,每个玩家都有自己的Player()类别。当我调用这个方法时,我收到以下错误:


---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

 in 

----> 1 game.score()


~/dev/code_education/backalley/scoring.py in score(self)

     91   def score(self):

     92     scores = []

---> 93     for name in self.players:

     94       score = name.score_round()

     95       scores.append(score)


TypeError: 'method' object is not iterable

我以为我会迭代一个列表,但我显然错过了一些东西。self.players 等类变量也被视为方法吗?


哔哔one
浏览 82回答 3
3回答

一只名叫tom的猫

self.players返回方法对象,但不调用它。您应该遵循它以()使其成为方法调用:for name in self.players():     # Here -------------^

ibeautiful

self.players 等类变量也被视为方法吗?不,但是您正在使用方法名称score(),然后尝试将其附加到列表中。这就是你的问题所在。

小怪兽爱吃肉

该错误来自于说我已经进行了__repr__设置。不过还是谢谢你的帮助!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python