python多实例化和传递值
新手问题。有人能帮我理解下面发生的事情吗 这都是从学习python的艰辛之路ex43- 类引擎如何从类映射中知道列表中的第一个“场景”是什么? 这种交接发生在哪里 我也不确定引擎和Map类如何通信。我看到它是在底部实例化的,但是有可能有一个实例化的对象(一个映射)然后再次实例化该对象(通过一个游戏) 例如:python多实例化和传递值,python,class,instantiation,Python,Class,Instantiation,新手问题。有人能帮我理解下面发生的事情吗 这都是从学习python的艰辛之路ex43- 类引擎如何从类映射中知道列表中的第一个“场景”是什么? 这种交接发生在哪里 我也不确定引擎和Map类如何通信。我看到它是在底部实例化的,但是有可能有一个实例化的对象(一个映射)然后再次实例化该对象(通过一个游戏) 例如: a_map = Map('1') a_game = Engine(a_map) 这是完整的代码 class Engine(object): def __init__(self,
a_map = Map('1')
a_game = Engine(a_map)
这是完整的代码
class Engine(object):
def __init__(self, scene_map):
self.scene_map = scene_map
def play(self):
current_scene = self.scene_map.opening_scene()
last_scene = self.scene_map.next_scene('2')
while current_scene != last_scene:
next_scene_name = current_scene.enter()
current_scene = self.scene_map.next_scene(next_scene_name)
class FristLevel(object):
def enter(self):
pass
class SecondLevel(object):
def enter(self):
pass
class Map(object):
scenes = {'1' : FristLevel(),
'2' : SecondLevel()}
def __init__(self, start_scene):
self.start_scene = start_scene
def next_scene(self, scene_name):
pass
def opening_scene(self):
pass
a_map = Map('1')
a_game = Engine(a_map)
a_game.play()
我不太确定你的问题是什么,但我会试着为你把代码分解一下
a_map = Map('1')
这将创建Map
的新实例,并将其存储在名称a_Map
中
a_game = Engine(a_map)
这将创建一个新的引擎实例
,并将其存储在namea_game
中。请注意,输入参数是a_map
。在这种情况下,Map
实例被传递到Engine.\uuuu init\uuuu
并存储为scene\u Map
属性。在上面的示例中,如果要编写:
a_game.scene_map is a_map
结果将是
True
,因为它们都是相同的Map
实例的名称。好的,这很有帮助,我对变量a_game如何调用Map scenes列表中的不同项目感到困惑。因此,如果我想从引擎调用Map.scenes列表中的其他项目,我该怎么做?