Python 我能';我不明白为什么这个AttributeError持续存在
Stack Overflow的大家好【我的第一篇帖子,请原谅问题结构中的任何特殊情况,等等】正如标题所述,我得到了这段代码,其中Map类中有一个明确定义的“打开场景”函数,但我得到了一个属性错误【字典中的Manor类引用只有一个函数Python 我能';我不明白为什么这个AttributeError持续存在,python,Python,Stack Overflow的大家好【我的第一篇帖子,请原谅问题结构中的任何特殊情况,等等】正如标题所述,我得到了这段代码,其中Map类中有一个明确定义的“打开场景”函数,但我得到了一个属性错误【字典中的Manor类引用只有一个函数def enter(self)】: 非常感谢您的任何建议/提示/解释,谢谢 以下是键入的代码: class Manor(Scenes): """First encounter class.""" def e
def enter(self)】:
非常感谢您的任何建议/提示/解释,谢谢
以下是键入的代码:
class Manor(Scenes):
"""First encounter class."""
def enter(self):
"""First encounter."""
print("""plot fodder""")
class Map(object):
"""The Map w/ a data dictionary using classes."""
scenes = {
'manor': Manor(),
'master_bedroom': MasterBedroom(),
'dining_room': DiningRoom(),
'escape_scene': EscapeTheHouse(),
'death': Death(),
'finished': Finished()
}
def __init__(self, start_scene):
"""Instance initiator."""
self.start_scene = start_scene
def next_scene(self, scene_name):
"""Move to next class."""
value = Map.scenes.get(scene_name)
return value
def opening_scene(self):
"""Mechanism that starts."""
return self.next_scene(self.start_scene)
class Engine(object):
"""Engine of the game class."""
def __init__(self, scene_map):
"""instance."""
self.scene_map = scene_map
def play(self):
"""Engine of the class."""
current_scene = self.scene_map.opening_scene()
last_scene = self.scene_map.next_scene('finished')
while current_scene != last_scene:
next_scene_name = current_scene.enter()
current_scene = self.scene_map.next_scene(next_scene_name)
current_scene.enter()
a_map = Map.scenes[('manor')]
a_game = Engine(a_map)
a_game.play()
下面是powershell错误:第159行,正在播放的当前场景=self.scene\u map.opening\u scene()AttributeError:“Manor”对象没有属性“opening\u scene”
A
该类在函数中包含多个条件分支,但我认为它可能超出了问题的范围,如果不是,我也会添加它
如果我没有包含更多信息,请告诉我!您将
地图.场景[('manor')]
分配给地图
:
a_map = Map.scenes[('manor')]
它是Manor()
的一个实例,定义如下:
scenes = {
'manor': Manor(),
# ...
}
然后将Manor()
的实例传递给Engine()
构造函数:
a_game = Engine(a_map)
它将其分配给self.scene\u map
此处:
def __init__(self, scene_map):
"""instance."""
self.scene_map = scene_map
然后调用.play()
,它可以执行以下操作:
current_scene = self.scene_map.opening_scene()
因此,它试图在
Manor()的实例上调用.opening_scene()
,但是Manor
没有打开场景的方法,因此失败。不要发布图片。将文本放入question@BeanBagTheCat它是在代码第28行附近的图片中显示的代码上面定义的。@SoVesali-这没关系,只要复制相关代码并将其放入问题中即可。在因此,与可能在不久的将来消失的图像相关的内容是毫无意义的,因此您必须在问题中包含相关代码。错误消息/输出也是如此。也不要相信我们的话,这很有意义:Manor()
类从何而来?您可以提供导入或相关代码吗?