関数spam
に signature があるとしますspam(ham=None)
。次の 3 つの呼び出しはすべて、の名前空間のローカル変数ham
に値 を持たせます。spam
None
spam()
spam(None)
spam(ham=None)
spam
これら 3 つの代替案のうち、実際に使用されたものをどのように確認できますか?
関数spam
に signature があるとしますspam(ham=None)
。次の 3 つの呼び出しはすべて、の名前空間のローカル変数ham
に値 を持たせます。spam
None
spam()
spam(None)
spam(ham=None)
spam
これら 3 つの代替案のうち、実際に使用されたものをどのように確認できますか?
できません。 この質問では、デコレータを使用して関数をラップし、渡された引数を属性として設定する方法について説明しています。spam
しかし、外部からの助けなしに内部から発見する方法はありません。**kwargs
情報を保存するためにそれを受け入れて使用する関数で呼び出しを傍受する必要があります。
ただし、これを行うには注意が必要です。引数を渡すさまざまな方法は、同じように機能するはずです。異なる動作をさせるようなことをすると、関数を使おうとする多くの人を混乱させることになります。