在python类中的_str__函数内调用方法

在python类中的_str__函数内调用方法,python,function,class,methods,Python,Function,Class,Methods,“List”对象没有属性“points”是我遇到的错误。我想我没有在\uu str\uu函数中正确调用点,但不知道如何修复它。之前,我在\uuuu str\uuuuu之前定义了点,并且有相同的错误 class Persons(object): def __init__(self,name,radius,home_universe,x,y,dx,dy,current_universe,rewards): self.name = name self.rad

“List”对象没有属性“points”
是我遇到的错误。我想我没有在
\uu str\uu
函数中正确调用
,但不知道如何修复它。之前,我在
\uuuu str\uuuuu
之前定义了
点,并且有相同的错误

class Persons(object):

    def __init__(self,name,radius,home_universe,x,y,dx,dy,current_universe,rewards):

        self.name = name
        self.radius = radius
        self.home_universe = home_universe
        self.x = x
        self.y = y
        self.dx = dx
        self.dy = dy
        self.current_universe = current_universe
        self.rewards = rewards

    def __str__(self):

        return '{} of {} in universe {}\n at ({},{}) speed ({},{}) with {} rewards and {} points'.\
               format(self.name, self.home_universe, self.current_universe, self.x, self.y, self.dx,\
                      self.dy, len(self.rewards), self.rewards.points())

    def points(self):

        cnt = 0
        if len(self.rewards) == 0:
            return 0
        else:
            for reward in self.rewards:
                cnt += reward[2] 
            return cnt 

您使用的是
self.rewards.points()
,但您只有
self.points()


使用
self.points()

什么是
self.rewards
?如果您只有
self.points()
,为什么要使用
self.rewards.points()
?请使用按钮
{}
正确设置代码格式。始终将完整的错误消息(回溯)放在问题中(作为文本,而不是屏幕截图)。还有其他有用的信息。您正在调用
self.rewards.points()
。错误消息表明
self.rewards
是一个
列表
,它没有
积分
属性。也许你的意思是@furas建议的
self.points()