使用法コードでファクトリを指定せずに、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