Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでデフォルトのパラメータ値を関数に設定するにはどうすればよいですか?


Pythonによるデフォルトのパラメータ値の処理は、ほとんどの新しいPythonプログラマーを悩ませることができる数少ないことの1つです。

問題の原因は、デフォルト値として「可変」オブジェクトを使用することです。つまり、リストや辞書など、その場で変更できる値です。

2番目の引数が指定されていない場合、関数が呼び出されるたびに新しいリストが作成されるため、期待される出力は次のようになります。

[12]
[43]

関数が定義されると、新しいリストが1回作成され、その後の呼び出しごとに同じリストが使用されます。

Pythonのデフォルトの引数は、関数が呼び出されるたびではなく、関数が定義されたときに1回評価されます。つまり、変更可能なデフォルト引数を使用して変更すると、関数への今後のすべての呼び出しでもそのオブジェクトが変更されます。

私たちがすべきこと

デフォルトの引数を使用して、引数が指定されていないことを通知することにより、関数が呼び出されるたびに新しいオブジェクトを作成します(多くの場合、どれも適切な選択ではありません)。

def func(data=[]):
    data.append(1)
    return data
func()
func()
def append2(element, foo=None):
    if foo is None:
        foo = []
    foo.append(element)
    return foo
print(append2(12))
print(append2(43))
出力
[12]
[43]

  1. Python Matplotlibで多変量関数をプロットする方法は?

    Pythonで多変量関数をプロットするには、次の手順を実行できます- ステップ 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。 ランダムなxを作成します 、 y およびz numpyを使用したデータポイント。 図とサブプロットのセットを作成します。 xを使用して散布図を作成します 、 y およびz データポイント。 ScalarMappableインスタンスのカラーバーを作成します。s 。 図を表示するには、 show()を使用します メソッド。 例 import numpy as np import matpl

  2. Matplotlib PythonでX軸の値を設定するにはどうすればよいですか?

    PythonのmatplotlibでX軸の値を設定するには、次の手順を実行できます- xデータポイントとyデータポイントの2つのリストを作成します。 xticksを入手する 範囲値。 plot()を使用して線をプロットします xtick範囲値とyデータポイントを使用するメソッド。 xticksを置き換えます xticks()を使用したX軸値 メソッド。 図を表示するには、 show()を使用します メソッド。 例 from matplotlib import pyplot as plt plt.rcParams["figure.figsize