collections.defaultdict(任何可调用的)默认工厂不接受参数。
如果
default_factory
不为 None ,则在不带参数的情况下调用该函数以提供给定键的默认值,此值将插入键的字典中并返回。
换句话说,
defaultdict不会将任何信息传递给
default_factory。
子类
defaultdict可自定义默认
__missing__钩子,以使用缺少键作为参数来调用
default_factory(
Room类构造函数):
from collections import defaultdictclass mydefaultdict(defaultdict): def __missing__(self, key): self[key] = new = self.default_factory(key) return new
的构造函数
Room将如下所示
class Room(object): def __init__(self, identity): self.numbers = [] self.identify = identity
从现在开始,您需要使用
mydefaultdict而不是
defaultdict。例:
room = mydefaultdict(Room)print(room['Train'].getRoom()) # Train print(room['Hospital'].getRoom()) # Hospital
在此过程中,建议您重新考虑存储/访问数据的方式。



