Exercise 43 Hard Way使用一个值为构造函数的字典。字典在类中定义。 我不明白当这个类返回一个字典值时会发生什么。是每次都返回给定类的新对象吗?
class Map(object):
scenes = {
'central_corridor': CentralCorridor(),
'laser_weapon_armory': LaserWeaponArmory(),
'the_bridge': TheBridge(),
'escape_pod': EscapePod(),
'death': Death(),
'finished': Finished(),
}
...
这是从字典 scenes
返回值的方法def next_scene(self, scene_name):
val = Map.scenes.get(scene_name)
return val
返回dict值是否每次返回时都会创建一个新对象? 当Python第一次看到类定义时,是否预先创建了字典中的对象?
练习是玩家可以在不同场景之间进行的游戏。因此,玩家可以多次进入一个场景。如果代码每次创建一个新对象,则会有与用户进入场景的次数一样多的对象。
答案 0 :(得分:2)
在创建类Map
时创建字典,并且在创建字典时将所有充当字典值的类对象实例化。
每次都返回给定类的新对象吗?
在类上只创建了一个dict对象。通过类在Map.scenes
中访问dict时,不会创建新的。
返回dict值是否每次创建一个新对象 返回?
没有。始终返回创建dict时的初始类实例。