我想创建一个行为与collections.defaultdict类似的类,但没有使用代码指定工厂。 EG:的 代替对于类/构造函数,functools'partial'的python等效
class Config(collections.defaultdict):
pass
这样的:
Config = functools.partial(collections.defaultdict, list)
这几乎工作,但
isinstance(Config(), Config)
失败。我敢打赌,这个线索意味着更深层次的更狡猾的问题。那么有没有办法实现这个目标?
我也试过:
class Config(Object):
__init__ = functools.partial(collections.defaultdict, list)
会不会更合理的检查是:'isinstance(Config(),collections.defaultdict)'?只要'Config'不是一个类,'isinstance'当然会失败。由于显式类型检查在Python中并不常见/推荐,所以您可能会继续使用上面的'Config' - 它应该在许多情况下以满意的方式工作。 – sebastian