gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 02:52:19 25 4
gpt4 key购买 nike

Exercise 43 Learn Python the 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

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

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

最佳答案

字典是在创建Map类时创建的,所有充当字典值的类对象在字典创建时都会实例化一次。

Is a new object of a given class returned each time?

该类上仅创建一个 dict 对象。当通过 Map.scenes 中的类访问字典时,不会创建新的字典。

Does returning the dict values create a new object each time it is returned?

没有。始终返回字典创建时的初始类实例。

关于python - LPTHW 练习 43 - 通过从字典返回构造函数来创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44616516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com