2016-11-24 67 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是的,这是非常有意义的!非常感激。 –