我正在编写一个游戏,并且需要一种数据类型,可以存储各种变量,包括列表、元组、字符串和整数。我在使用字典或命名元组之间犹豫不决。
GameData = namedtuple('GameData', ['Stats', 'Inventory', 'Name', 'Health'])
current_game = GameData((20,10,55,3), ['Sword', 'Apple', 'Potion'], 'Arthur', 100)
GameData = {'Stats': (20,10,55,3), 'Inventory': ['Sword', 'Apple', 'Potion'], 'Name': 'Arthur', 'Health': 100}
你看,这里最大的问题是所有这些值都可能发生改变,所以我需要一个可变的数据类型,而不是 `namedtuple`。查阅文档,`namedtuple` 看起来有 `._replace()` 方法,那么它是可变的吗?
我也喜欢 `namedtuple` 有一个打印成 `name=value` 格式的 `__repr__` 方法。此外,为 `namedtuple` 中的每个值分配独立的 `__doc__` 字段功能非常有用。在字典中是否有这种功能?