我想創建一個行爲與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