に渡されたキーワード引数を取得する:私は明示的なキーワード引数にPythonのメソッドの夢を見ています実際にPythonの方法
def func(a=None, b=None, c=None):
for arg, val in magic_arg_dict.items(): # Where do I get the magic?
print '%s: %s' % (arg, val)
私が実際に渡されただけでこれらの引数、呼び出し元の辞書を取得したいですメソッドと同じように、**kwargs
と同じですが、私は、呼び出し側が、**kwargs
とは異なり、古いランダムな引数を渡すことはできません。
>>> func(b=2)
b: 2
>>> func(a=3, c=5)
a: 3
c: 5
So:そのような呪文はありますか?私の場合は、それぞれの引数をデフォルトと比較して異なるものを見つけることができますが、9つの引数があるときには、これは控えめで、面倒です。
>>> func(a=None)
a: None
Tricksy:ボーナスポイントの場合、呼び出し側がキーワード引数に渡しても、そのデフォルト値が割り当てられて私に言うことができる呪文を提供!
編集:(字句)関数の署名はそのまま残す必要があります。これは公開APIの一部です。明示的なキーワード引数の主な価値は、ドキュメンタリーの価値にあります。物事を面白くするために。 :)
この質問のタイトルは非常に似ていますが、重複しているかどうかはわかりません:http://stackoverflow.com/questions/196960/can-you-list-the-keyword-arguments-a-python -function-received –
@AndersonGreen。あなたが言及する質問は、この問題とは関係ありません。 **表記法をすべてのキーワードを受け入れないメソッドに渡すときに辞書をフィルタリングする方法について質問します。 –
これは大きな質問です。 –