Python LPTHW练习43-通过从字典返回构造函数创建对象

Python LPTHW练习43-通过从字典返回构造函数创建对象,python,dictionary,constructor,Python,Dictionary,Constructor,学习Python的艰难之路使用了一个值为构造函数的字典。字典是在类中定义的。 我不明白当这个类返回一个字典值时会发生什么。是否每次都返回给定类的新对象 class Map(object): scenes = { 'central_corridor': CentralCorridor(), 'laser_weapon_armory': LaserWeaponArmory(), 'the_bridge': TheBridge(),

学习Python的艰难之路使用了一个值为构造函数的字典。字典是在类中定义的。 我不明白当这个类返回一个字典值时会发生什么。是否每次都返回给定类的新对象

class Map(object):

    scenes = {
        'central_corridor': CentralCorridor(),
        'laser_weapon_armory': LaserWeaponArmory(),
        'the_bridge': TheBridge(),
        'escape_pod': EscapePod(),
        'death': Death(),
        'finished': Finished(),
    }

...
下面是从字典场景返回值的方法

每次返回dict值时是否都会创建一个新对象? 当Python第一次看到类定义时,是否预先创建了字典中的对象


这个练习是一个游戏,玩家可以在不同的场景之间进行。因此,玩家可能会多次进入一个场景。如果代码每次创建一个新对象,那么对象的数量将与用户进入场景的次数相同。

当创建类
映射时,将创建字典,并且在dict创建时,将实例化所有充当字典值的类对象

是否每次都返回给定类的新对象

class Map(object):

    scenes = {
        'central_corridor': CentralCorridor(),
        'laser_weapon_armory': LaserWeaponArmory(),
        'the_bridge': TheBridge(),
        'escape_pod': EscapePod(),
        'death': Death(),
        'finished': Finished(),
    }

...
仅在类上创建一个dict对象。当通过类访问dict时,不会创建新的dict,如
Map.scenes
中所示

每次返回dict值时是否会创建新对象 回来了

否。创建dict时始终返回初始类实例