私は明示的なキーワード引数を持つ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
だから:そのような呪文はありますか?私の場合、たまたま各引数をデフォルトと比較して、異なる引数を見つけることができますが、これは一種のエレガントではなく、9つの引数があると面倒になります。ボーナスポイントについては、発信者がデフォルト値を割り当てられたキーワード引数を渡した場合でも教えてくれる呪文を提供します。
>>> func(a=None)
a: None
トリッキー!
編集:(字句)関数の署名はそのままにしておく必要があります。これはパブリックAPIの一部であり、明示的なキーワードargsの主な価値は、それらのドキュメンタリー値にあります。物事を面白くするためだけに。:)