使几个类的属性具有不同的值:可以避免必须进行几个__init__?的任何方法?]

问题描述 投票:0回答:2

我正在用Python 3创建一个基于文本的冒险游戏,我需要为不同的敌人类型创建类。每种敌人类型都有5个属性(当前hp,最大hp,攻击,速度和准确性)。我想知道是否有任何方法可以使这些类而无需编写包含相同属性声明的多个init

。所以我可以拥有一个超类或包含此__init__的东西
    def __init__(self, hp, attack, speed, accuracy):

        #defines stats for the enemy
        self.maxhp = hp
        self.currenthp = hp
        self.attack = attack
        self.speed = speed
        self.accuracy = accuracy

然后只是将其“复制”到不同的敌人类型类别中。有什么方法可以执行此操作,还是我必须针对每个敌人类型键入一个包含此init的不同超类?

我正在用Python 3创建一个基于文本的冒险游戏,我需要为不同的敌人类型创建类。每种敌人类型都有5个属性(当前hp,最大hp,攻击,速度和准确性)。 ...

python python-3.x class inheritance subclass
2个回答
0
投票

对于您所描述的,您实际上不是需要


0
投票

据我所知,您想要一个超类“敌人”,并且想要“敌人”的每个子类,例如,“战士”,“龙”,“骑士”;每个敌人都有生命值,攻击力,精确度统计信息,但与飞龙一样,战士可能具有不同的属性和方法。在这种情况下,我将检查有关继承的本文。继承只允许您创建一个超类,并让每个子类“继承”那些属性:https://www.w3schools.com/python/python_inheritance.asp

© www.soinside.com 2019 - 2024. All rights reserved.