Python のデフォルト パラメーターに関する問題の回避
Python のデフォルト パラメーターを使用する場合、特に可変引数の場合、特定の複雑さが発生する可能性があります。これらの問題を防ぐには、デフォルト パラメーターの動作に対処することが重要です。
たとえば、次の関数を考えてみましょう:
def my_func(working_list=[]): working_list.append("a") print(working_list)
最初の呼び出しでは、空のリストのデフォルト パラメーターは期待どおりに機能します。 。ただし、後続の呼び出しでは予期しない動作が発生し、デフォルトのパラメーター (最初は空のリスト) が以前の実行から追加された要素を維持します。
この問題を解決し、関数呼び出しごとに新しい空のリストを作成するために、Python は 2 つのアプローチを提供します。 :
1.なしのテスト:
def my_func(working_list=None):</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">if working_list is None: working_list = [] working_list.append("a") print(working_list)
2.条件付き代入:
def my_func(working_list=None):</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">working_list = [] if working_list is None else working_list working_list.append("a") print(working_list)
どちらのソリューションも、新しい空のリストは要素を追加する前に初期化されるため、各関数呼び出しが分離され、以前のリストからのデータの蓄積が防止されます。処刑
以上がPython の変更可能なデフォルト パラメーターによる予期せぬ動作を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。