2016-11-24 52 views
1

我已經在下面創建了這些類,並且我試圖在遊戲中根據另一個類中的屬性呈現文本。我不斷收到這個錯誤。 文件 「C:\用戶\ XXXXXXXX \ PycharmProjects \ Game.idea \ Girls.py」,第20行,在not_interested 回報(self.interest < 10) AttributeError的: 'GirlTile' 對象沒有屬性 '興趣'在Python中的類之間傳遞屬性的問題

class Girls(): 
    def __init__(self): 
     self.girlnames = ["Lucy", "Cindy", "April", "Allison", "Heather", "Andrea", "Brittany", "Jessica", "Lane", "Lauren", "Sabrina","Chelsea","Amber"] 
     self.name = random.choice(self.girlnames) 
     self.height = random.randrange(60, 72) 
     self.age = random.randrange(18, 25) 
     self.number = self.new_number() 
     self.interest = 0 

     def not_interested(self): 
      return (self.interest < 10) 

from Girls import Girls 

class GirlTile(MapTile): 
    def __init__(self,x,y): 
     self.enemy = Girls() 
     super().__init__(x, y) 

    def intro_text(self): 
     self.stance = Girls.not_interested(self) 
     if self.stance: 
      print("Hey whats up") 
+0

'GirlTile'類與'Girls'類不同,只有'Girls'具有'interest'。你將'GirlTile'的一個實例傳遞給'Girls.not_interested()' - 我假設你的意思是'self.enemy.not_interested()'。 – AChampion

+0

只是更新它顯示行 –

+0

如果'self.enemy'不是正確的實例,那麼你需要一個'Girls'的實例,那麼你可能需要'intro_text(self,girl)'的參數'。 – AChampion

回答

1

看起來像not_interested是一個實例級別的方法,但您試圖用類(Girls)調用它。由於您正在通話中傳遞GirlTile實例,因此電話有點「工作」 - 因此,GirlTile沒有interest屬性(因爲沒有)。

也許你打算這樣呢?

def intro_text(self): 
    # Use an actual Girl instance to call not_interested(). 
    self.stance = self.enemy.not_interested() 
    ... 
+0

ahhhhh是的,這是非常有意義的!非常感激。 –