python - TypeError:无法创建一致的方法解析顺序(MRO)

标签 python inheritance typeerror method-resolution-order

这是我计划用于我的游戏的代码,但它提示 MRO 错误:

class Player:
    pass

class Enemy(Player):
    pass

class GameObject(Player, Enemy):
    pass

g = GameObject()

最佳答案

您的 GameObject 继承自 Player Enemy。因为 Enemy 已经 继承自 Player Python 现在无法确定首先查找方法的类; Player,或在 Enemy 上,这将覆盖 Player 中定义的内容。

你不需要在这里命名Enemy的所有基类;只从那个类继承:

class GameObject(Enemy):
    pass

Enemy已经包含了Player,不需要再包含了。

关于python - TypeError:无法创建一致的方法解析顺序(MRO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29214888/

相关文章:

compiler-errors - 键入int ref但应为int

python - Selenium webdriver.get() 方法并不总是有效

javascript - 使用javascript获取缺失数组的长度

python - 使用切片交换索引?

javascript - 调用方法由没有 super 的 mixin 实现

C++多重继承,删除对象出错

python - 在Python 3中从子类获取父类的属性

python - 类型错误: 'retval_' 在主分支中具有 dtype int32,但在 else 分支中具有 dtype float32

python - 尝试将 python 片段导入 C/C++(PI spigot 算法)

python - 如何从 Reddit 上的 subreddit 中抓取所有评论?