関数を呼び出すとき、データの転送は、メイン関数と呼び出し関数の間で常に切り離すことができません。データの転送は、パラメーターの転送です。パラメーターの目的は、データを関数に渡すことです。
たとえば、リンゴを追加するとリンゴジュースが出てきます。パラメータは main 関数を通じてターゲットに渡されます。関数であり、呼び出された関数は結果を返します。
次にパラメータの受け渡しについて学びましょう。
関数パラメータの受け渡しを学ぶには、まず仮パラメータと実パラメータとは何かを理解する必要があります。上記の例を続けてみましょう。ジューサーに果物を入れるためのコンテナがあります。このコンテナに果物を入れると、形式パラメータと実パラメータは同様の関係になります。
仮パラメータは、関数を定義するときに括弧内に定義されたパラメータであり、このパラメータを使用して関数内にコードを記述します。実際のパラメータは、関数が呼び出されたときに渡されるパラメータです。仮パラメータではなく、この実パラメータを使用します。
次の例を見てください。
>>>A=30>>>defget_salary(days):...salary=days*300...print(salary)...>>>get_salary(A)9000
上の例では、関数の作成時に使用されたパラメーター days は、関数を呼び出すときの仮パラメーターであり、実際に関数に取り込まれるパラメーターです。
関数を作成するときは、括弧内に複数の仮パラメータを定義できます。関数を呼び出すときは、パラメータの数と位置が作成されたものと一致している必要があります。
作成した関数に仮パラメータが 2 つあるのに、呼び出し時に実際のパラメータを 1 つだけ使用した場合はどうなるでしょうか。以下の例を参照してください。
>>>defget_message(アドレス,番号):...print(アドレス,番号)...>>>get_message('蘇州')Traceback(mostrecentcalllast):File<stdin>,line1,in<module>TypeError:get_message ()missing1required位置引数:'数値'
実パラメータの数が仮パラメータの数と等しくない場合、例外がスローされることがわかります。これは、具体的には、必要な位置パラメータの数が欠落していることを意味します。
パラメータの位置が一致しない場合、2 つのエラーが発生します。1 つは、パラメータを渡すときにパラメータの性質に応じて異なる型を定義するため、データ型エラーが例外をスローするため、エラーを直接報告する方法です。
もう 1 つのエラーは、渡されたパラメーターのデータ型は正しいが、位置が間違っているため、間違った出力結果が発生することです。
プログラムの可読性を向上させるために、関数を呼び出すときにキーワード引数を使用することもできます。
コンテナの体積を計算することで、キーワード引数について学習します。
>>>defvolume(長さ,幅,高さ):...volume=長さ*幅*高さ...print('ボリュームは: ',volume)...>>>volume(長さ=20,幅= 30 、高さ = 3) ボリュームは: 1800
キーワードパラメータを使用すると、変数を定義するプロセスを保存し、関数が呼び出されたときに直接パラメータに値を代入し、それを関数に渡し、最後に結果を返すことができます。この転送方法では、パラメータの位置の違いは出力結果に影響を与えません。
関数を定義するときに、関数のパラメーターの初期値を定義できるため、関数を呼び出すときに実際のパラメーターが指定されていない場合、関数はデフォルトのパラメーターを使用します。
次の例を見てください。
>>>defvolume(length=100,width=100,height=10):...volume=length*width*height...print(volume)...>>>volume()#実際のパラメータは与えられません実際のパラメータが指定されると、デフォルトのパラメータ 100000>>>volume(10,10,10)# が使用され、実際のパラメータが渡され、出力結果は 1000 になります。
上記の例では、関数の作成時にデフォルト値を指定した場合、関数の使用時に実際のパラメーターを指定しなかった場合は、デフォルトのパラメーターが自動的に使用されます。
Python では、関数のパラメータの数は変更できます。つまり、そのようなパラメータの数は可変パラメータと呼ばれます。変数パラメータには 2 種類あり、1 つはパラメータの前に * を付ける方法で、もう 1 つはパラメータの前に * を付ける方法です。変数パラメータはタプルの形式で渡されます。 パラメータを渡すときは、主に最初の方法を紹介します。
次の例を見てください。
>>>defadd_number(*number):...add_num=0...foriinnumber:...add_num+=i...print(add_num)...>>>add_number(1,2,3,4,5) )15
可変パラメーターを使用する場合、これらのパラメーターはタプルに保存されて関数に渡されるため、これらのパラメーターを使用したい場合は、トラバーサル値またはインデックス値を使用できます。
関数のパラメータの受け渡しもほぼ同じです。関数をよく学びたい場合は、関数を使用する際にパラメータの正しい受け渡しを習得することが重要です。