如何在类之间共享属性和方法?

2024-06-28 15:57:05 发布

您现在位置:Python中文网/ 问答频道 /正文

在这里:Python class inherits object,在这里What is a metaclass in Python?我仍然不确定如何让我的代码工作。老实说,那些解释对我来说有点复杂。(顺便说一句,这些都在python3.4中)。你知道吗

我试着用生物的形式为我的游戏制作物体。示例:我想要一个名为Dragon的对象,但是我想要Dragon继承类实体和类Monster。你知道吗

我得到的是:

class Entity:
    id = 0
    xLocation= 0
    yLocation = 0
    name = ''
    description = ''
    def __init__(self, id, xLocation, yLocation, name, description):
        self.xLocation = xLocation
        self.yLocation = yLocation
        self.id = id
        self.name = name
        self.description = description


class Monster:
    life = 0
    pierce = 0
    slash = 0
    blunt = 0
    pierceReduction = 0
    slashReduction = 0
    bluntReduction = 0
    defenseBonus = 0
    score = 0
    def __init__(self, pierceReduction, bluntReduction, slashReduction, price, name, score):
        self.pierceReduction = pierceReduction
        self.bluntReduction = bluntReduction
        self.slashReduction = slashReduction
        self.price = price
        self.name = name
        self.score = score



class Structure:
    pass

Monster = Entity
Dragon = Monster

我不知道我怎么能给龙一个实体和一个怪物的所有价值观?显然,将龙直接设置为怪物是行不通的。你知道吗

我已经试过了

班级结构: 通过

龙类(实体,怪物): 通过

龙(10,10,10,1000,'龙',1000)

龙是说它没有两个类的所有参数?你知道吗


Tags: nameself实体iddescriptionpriceclassscore
2条回答

可以从声明中的实体类class Monster(Entity):继承。您可以在documentation中找到详细信息

Python可以有从多个父级继承的类。您可以简单地执行以下操作:

class Dragon(Monster, Entity):
    # class details

只要确保这些类之间的解析顺序是您所期望的。搜索“pythonmro”以获取更多关于它的详细信息。你知道吗

相关问题 更多 >