【问题标题】:Can't import classes Python无法导入类 Python
【发布时间】:2016-04-15 03:12:52
【问题描述】:

这是我的代码

class Game_Events(Setup, Game_Setup):
   def __init__(self):
      super(Game_Events, self).__init__()

      super(Game_Events, self).game_setup(self.map_filename)

但是在导入我得到的类时:

TypeError: Error when calling the metaclass bases
Cannot create a consistent method resolution
order (MRO) for bases Game_Setup, Setup

这是Setupinit

class Setup(object):
   def __init__(self):
    self.HERO_MOVE_SPEED = 20  # pixels per second
    self.MAP_FILENAME = 'resources/tmx/Fesnoria Town.tmx'
    self.MUSIC_FILENAME = "resources/music/Forest_Song.mp3"

这是Game_Setupinit

class Game_Setup(Setup):
    def __init__(self):
       super(Game_Setup, self).__init__()

我需要先导入Setup 类,因为它包含self.map_filename,它下面的其他类需要它。

有谁知道如何解决这个问题?

【问题讨论】:

  • 请提供 Setup 和 Game_Setup 类。似乎他们没有使用 super 并造成严重破坏......
  • 但它们真的很长!
  • 只有 _init_ 和 game_setup 方法就可以了。正如我所说,问题在于这些类以某种方式滥用“超级”......
  • 好的,我给你放好了

标签: python class


【解决方案1】:

Game_SetupSetup 的子类,但Game_Events 是从它们两者继承的,这是不可能的。我想你应该只从Game_Setup 继承才能使其工作。

【讨论】:

  • 但是我怎样才能从Game_Events访问Setup
  • 由于Game_Setup继承自Setup,所有在Setup中实现的方法和属性也将在Game_Events中可用。
猜你喜欢
  • 1970-01-01
  • 2022-10-19
  • 2021-10-23
  • 2022-06-23
  • 2016-03-31
  • 1970-01-01
  • 2021-09-08
  • 1970-01-01
相关资源
最近更新 更多