我有一个包含房间的地牢对象。每个房间都有一个名字。我想设计一个从其客户端接受此 API 的类:
dungeon = Dungeon()
room = dungeon.room['room_name']
到目前为止,我能够设计这样的东西:
dungeon = Dungeon()
room = dungeon.room('room_name')
编写一个采用 str 参数并按名称查找房间的方法很容易。
但是,如果我想让房间“访问器”表现得像一本字典呢?我有哪些选择?
我已经想到了这一点,但是,作为一个真正的初学者,我无法决定:
- 创建 dict 的子类型,覆盖其
__getattribute__
方法
我不喜欢的是让客户能够这样做:
dungeon.room.keys()
并发现所有房间名称。
如果这个问题对专家来说听起来很愚蠢......对不起。我还能说什么?