これは私が持っているクラスです:
class metadict(dict):
def __init__(self, do_something=False, *args, **kwargs)
if do_something:
pass
super(metadict,self).__init__(*args,**kwargs)
アイデアは、辞書をカプセル化し、特別なキーワードでいくつかの機能を追加することです。do_something
作成時に追加することはできませんが、辞書は保持できます。他のすべての側面については、通常の辞書と同じように動作します。
とにかく、問題は、私が与えるものは何でも、私が望むものではないargs
最初の値を割り当てることから始まるdo_something
ということです.
私が今していることはこれです:
class metadict(dict):
def __init__(self, do_something=False, *args, **kwargs)
if not isinstance(do_something, bool):
args = list(args)
args.append(do_something)
elif do_something:
pass
super(metadict,self).__init__(*args,**kwargs)
しかし、それは私には正しく見えません。do_something
kwargsの値を確認することもできますが、署名をいじって有用な情報を削除するため、さらに悪化します...
Python でオプション、位置、およびキーワード引数を安全に使用する方法はありますか? そうでない場合、他の簡単な回避策はありますか?
私はpython 2.6を使用しています