2014-06-06 38 views
1

我沿着一個Python教程系列,我來上課。 所以..我試圖製造某種「medevial​​角色扮演類系統」,並試圖將武器拿到戰士課上。我真的很新,所以如果你們儘可能簡單地解釋它,我們會很感激。分配不同的變量到不同的類

所以,我得到一個錯誤:

AttributeError: 'Warrior' object has no attribute 'wep_name' 

我在做什麼錯?

下面的代碼:

class Character(object): 
    def __init__(self, name): 
     self.health = 100 
     self.name = name 
     self.equipment = { 

     "Weapon": 'None', 
     "Attack Damage": '0' 
     } 

    def printName(self): 
     print "Name: " + self.name 


class Warrior(Character): 
    """ 
    **Warrior Class** 
    50% more HP 
    """ 
    def __init__(self, name): 
     super(Warrior, self).__init__(name) 
     self.health = self.health * 1.5 
     self.equipment["Weapon"] = self.wep_name  # <-- ? 

class Weapon(object): 
    def __init__(self, wep_name): 
     self.wep_name = wep_name 

很遺憾,如果標題沒有任何意義。我真的不知道這是什麼叫做:(

回答

2

在包含錯誤的路線,selfWarrior,不是Weapon,所以它沒有wep_name。如果你想使一個新的Weapon在這一點上,它可能是這樣的:

self.equipment["Weapon"] = Weapon("Sword") 
1

隨着你有你的武士階級內部沒有武器的成員變量,你不能給它分配

你必須把它提供給你的init方法,像這樣

def __init__(self, name, wep_name) 

像你這樣在武器類。

現在你可以做

self.equipment["Weapon"] = wep_name 

別的考慮依照其已封裝weapon_name

希望這可以幫助你

武器類的一個實例