gpt4 book ai didi

python - 知道什么时候创建类的实例而不是创建子类?

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:18 25 4
gpt4 key购买 nike

我正在将项目添加到我正在制作的基于文本的角色扮演游戏中。我的类(class)如下所示:

class Item(object):
def __init__(self, name, value, description):
self.name = name
self.value = value
self.description = description

class Weapon(Item):
def __init__(self, name, value, damage, description):
self.damage = damage
super(Weapon, self).__init__(name, value, description)

我的玩家的元素栏是一个字典,其中包含代表不同游戏内元素组的键:

class Player(object):
def __init__(self, inventory, ...):
self.inventory = {'weapons': []}
hero = Player()

问题是,在查看教程时,他们让我像这样对项目进行分类:

class Dagger(Weapon):
def __init__(...)
...

并将它添加到我的元素栏 hero.inventory['weapons'].append(Dagger())

我的问题是:创建像 Dagger() 这样的新子类比只创建 Weapon() 类的实例有什么好处,因为我没有添加到单个武器的附加属性?

感谢您的帮助,我希望这篇文章是清楚的。

最佳答案

当存在自然的 is-a 关系时使用子类。

不要仅仅为了代码重用而使用继承

不要为了多态而使用继承

在您的示例中,Dagger 是一种武器,因此使用子类非常有意义。

如果搜索继承与组合,或者 is-a 与 has-a,您可以获得很好的阅读 Material

希望对你有帮助

关于python - 知道什么时候创建类的实例而不是创建子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38296993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com