Python 为不同的类分配不同的变量

Python 为不同的类分配不同的变量,python,class,oop,object,Python,Class,Oop,Object,我跟随Python教程系列,来到了课堂。 所以我正在尝试制作某种“医疗RPG等级系统”,并试图将武器带到战士等级。我真的是新手,所以如果你们能尽可能简单地解释,我会很感激的 因此,我得到一个错误: AttributeError: 'Warrior' object has no attribute 'wep_name' 我做错了什么 代码如下: class Character(object): def __init__(self, name): self.health =

我跟随Python教程系列,来到了课堂。 所以我正在尝试制作某种“医疗RPG等级系统”,并试图将武器带到战士等级。我真的是新手,所以如果你们能尽可能简单地解释,我会很感激的

因此,我得到一个错误:

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
类字符(对象):
定义初始化(self,name):
自我健康=100
self.name=名称
自助设备={
“武器”:“无”,
“攻击伤害”:“0”
}
def打印名(自身):
打印“名称:”+self.Name
职业战士(角色):
"""
**武士阶级**
生命增加50%
"""
定义初始化(self,name):
超级(战士,自我).\uuuuu初始\uuuuuuuuuuu(姓名)
self.health=self.health*1.5

self.equipment[“wear”]=self.wep_name#在包含错误的行中,
self
指的是
战士
,而不是
武器
,因此它没有
wep_name
。如果你想在那时制造一个新的
武器
,它可能是这样的:

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

由于您的战士类中没有武器成员变量,您无法分配它

您必须像这样将其提供给init方法

def __init__(self, name, wep_name) 
就像你在武器课上做的那样

现在你可以做了

self.equipment["Weapon"] = wep_name 

考虑引用已经封装了武器名

的武器类的实例。 希望这对你有帮助