ホームページ  >  記事  >  バックエンド開発  >  Python のカスタム関数の変数パラメーターの使用法と注意事項についての簡単な説明

Python のカスタム関数の変数パラメーターの使用法と注意事項についての簡単な説明

WBOY
WBOYオリジナル
2016-07-21 14:53:141303ブラウズ

可変パラメータ

Python には 2 種類の変数パラメータがあり、1 つはリスト型、もう 1 つは辞書型です。リスト型は C の変数パラメーターに似ており、次のように定義されます

リーリー

ここで、args はタプルです。
辞書型の変数パラメータ:

リーリー

args は辞書です
タプルと辞書をそれぞれ対応する変数パラメータに渡すことができます。形式は次のとおりです

リーリー

デフォルトパラメータを使用した関数

関数のデフォルト値を持つパラメータは、使用するのに非常に便利です。通常の状況では、パラメータの受け渡しを省略してパラメータのデフォルト値を使用することも、次の場合にパラメータを積極的に渡すこともできます。呼び出す場合、パラメーターの順序を気にする必要はありません。これは使いやすく、論理制御を実行するためのマジック値として直接使用することもできます。

ただし、Pythonのデフォルト値パラメータは関数定義時に一度しか解析されないため、それ以降関数が呼び出されるたびに、デフォルト値パラメータはこの値になります。整数、文字列、祖先などの不変のデータ型に遭遇する場合は問題ありませんが、配列などの変更可能なデータ型に遭遇すると、予期しないことがいくつか起こります。
簡単な例を挙げて説明しましょう:

リーリー

関数を呼び出すたびに期待される結果を含む新しい配列を取得したい場合は、明らかにそれはできません。関数 add_to のパラメーター target は、関数が初めて解析されるときに空の配列に割り当てられます。これは、後続の呼び出しがすべてターゲット変数と変数の ID 値に基づいて解析されるためです。まったく同じ。期待どおりの結果を得るには、この変数データ型パラメーターの null 値を表す None を指定できます:

リーリー

Python の世界では、パラメータは識別子によって渡されます (大まかに説明すると、パラメータは参照によって渡されるということです)。注意する必要があるのは、パラメータの型が変数であるかどうかです。

リーリー
可変データ型の場合、関数のローカル スコープの変更はデータに保持されます。不変データ型の場合、発生した変更は、上記の例に示すように、新しく生成されたローカル変数にのみ反映されます。リーダーは比較できます。効果。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。