2017-12-09 23 views
-1

'List' object has no attribute 'points'は、私が得ているエラーです。私はの機能の中でpointsを正しく呼び出すのではないが、それを修正する方法はわからないと思う。以前はが__str__より前に定義されていて、同じエラーが発生していました。あなたはself.rewards.points()を使用しますが、あなただけself.points()を持ってPythonクラスの__str__関数内の呼び出しメソッド

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 
+3

「self.rewards」とは何ですか? 'self.points()'しか持っていないと 'self.rewards.points()'を使うのはなぜですか? – furas

+0

'{}'ボタンを使用してコードを正しくフォーマットします。 – furas

+0

は常に問題のフルエラーメッセージ(トレースバック)を入れます(テキストとして、スクリーンショットではありません)。その他の有用な情報があります。 – furas

答えて

2

使用self.points()

関連する問題