为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哔哔one 2023-09-12 10:31:33
我正在编写一个程序来为我喜欢玩的纸牌游戏评分,并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 scoresself.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 等类变量也被视为方法吗?
查看完整描述

3 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

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

for name in self.players():
    # Here -------------^


查看完整回答
反对 回复 2023-09-12
?
ibeautiful

TA贡献1993条经验 获得超5个赞

self.players 等类变量也被视为方法吗?

不,但是您正在使用方法名称score(),然后尝试将其附加到列表中。这就是你的问题所在。


查看完整回答
反对 回复 2023-09-12
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

该错误来自于说我已经进行了__repr__设置。不过还是谢谢你的帮助!



查看完整回答
反对 回复 2023-09-12
  • 3 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信