関数の基礎知識
カスタム関数の基本的な構文仕様と呼び出し方法をマスターし、関数の各種パラメータの使い方と呼び出し規則をマスターします。
1. Python 関数
- Function (関数) は、単一の関数または関連する関数を実装するために使用される、整理された再利用可能なコード セグメントです。
- 関数は、アプリケーションのモジュール性とコードの再利用率を向上させることができます。
- 私たちはすでに、print() など、Python によって提供される多くの組み込み関数を体験してきました。
- ただし、ユーザー定義関数と呼ばれる独自の関数を作成することもできます。
2. 関数をカスタマイズするための基本ルール
必要な関数を使用して関数を定義できます。以下は簡単なルールです:
- A関数コード ブロックは def キーワードで始まり、その後に関数識別子名と括弧 ( ) が続きます。
- 入力パラメータと独立変数は括弧で囲む必要があります。パラメータは括弧内で定義できます。
- 関数の最初の行のステートメントでは、関数の説明を保存するために使用されるドキュメント文字列をオプションで使用できます。
- 関数の内容はコロンで始まり、インデントされます。
- returnm [式] は関数を終了し、オプションで呼び出し元に値を返します。
- 式を指定せずに返すことは、None を返すことと同じです。
3. 関数構文のカスタマイズ
関数構文の定義:
def 函数标识名称(参数列表):
“函数_文档字符串,对函数进行说明"
函数体
return [表达式]
ログイン後にコピー
デフォルトでは、パラメーター値とパラメーター名は関数宣言で定義されます。一致します。
4. 関数呼び出し
関数の定義では、関数に名前を付け、関数に含まれるパラメーターとコード ブロック構造を指定するだけです。
この関数の基本構造が完成したら、別の関数呼び出しを通じて、または Python プロンプトから直接実行できます。
次の例では、printme ( ) 関数を呼び出します:
呼び出し後の出力結果は次のとおりです:
#4. Return キーワード
return ステートメント [expression] は関数を終了し、呼び出し元に式を選択的に返します。 パラメータ値のない return ステートメントは None を返します。 前の例では、値を返す方法が示されていませんでした。次の例は、その方法を示しています:
5. パラメータの受け渡し
Python では、型はオブジェクトに属し、変数には型がありません:
a=[1,2,3]
a="Runoob"
ログイン後にコピー
上記のコードでは、[1,2,3] はリスト型、「Runoob」は文字列ですtype であり、変数 a には Type という型はなく、単なるオブジェクトへの参照 (-a ポインター) であり、List 型オブジェクトまたは String 型オブジェクトにすることができます。
Python 関数のパラメータ受け渡し
不変型: プログラム プログラミングで受け渡す値 (整数、文字列、タプルなど)。たとえば、 fun(a) は a の値を転送するだけで、 a オブジェクト自体には影響しません。たとえば、 fun(a) 内の a の値を変更すると、コピーされた別のオブジェクトが変更されるだけで、 a 自体には影響しません。私たちはこれを値による受け渡しと呼ぶことがよくあります。 変数の型: リストや辞書など、プログラミングにおける参照の受け渡し (アドレスの受け渡し) に似ています。たとえば、fun(la) は実際には la を渡しますが、変更後は fun の外側の la も影響を受けます。
Python ではすべてがオブジェクトです。厳密な意味では、値渡しか参照渡しかを言うことはできません。不変オブジェクトを渡すか、変更可能なオブジェクトを渡すと言うべきです。
6. パラメータ
関数を呼び出すときに使用できる正式なパラメータのタイプは次のとおりです:
必須パラメータ。 キーワードパラメータ。 デフォルトのパラメータ。 長さのパラメータが不定です。
必須パラメータ
必須パラメータは、正しい順序で関数に渡す必要があります。コール時の数量は申告時の数量と同じである必要があります。
例:
ch06-demo01-args-necessary.py
ログイン後にコピー
greeting() 関数を呼び出すときは、パラメーターを渡す必要があります。そうしないと、構文エラーが発生します。
##キーワード パラメータ
キーワード パラメータは関数呼び出しと密接に関連しています。関数呼び出しでは、キーワード パラメータを使用して受信パラメータ値を決定します。
キーワード パラメーターを使用すると、関数呼び出し時のパラメーターの順序が宣言の順序と一致しないことが許可されます。これは、Python インタープリターがパラメーター値とパラメーター名を照合できるためです。
例:
ch06-demo02-keyword.py
ログイン後にコピー
次の例では、関数 printinfo() が呼び出されるときにパラメーター名を使用します。
缺省参数
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
示例:
ch06-demo03-args-default.py
ログイン後にコピー
打印默认的age,如果age没有被传入:
注意:缺省值必须放在最后一个参数。
不定长参数*args
可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。
适用于当参数个数不确定或根据调用情况其参数个数会动态变化的情况。
基本语法如下:
def函数名称(formal args, *args ):
“函数_文档字符串"
函数体
retum [表达式]
ログイン後にコピー
加了星号(* )的变量名会存放所有未命名的变量参数。选择不多传参数也可,可变长参数的类型为元组。
补充: **kw
**两个型号代表接受的是一个可变长度的 字典类型的参数。
因此,改参数必须以k-v值结构出现。
def函数名称(formal _args, **kw ):
“函数_文档字符串”
函数体
retum [表达式
ログイン後にコピー
加了星号(** )的变量名会存放所有未命名的变量参数。选择不多传参数也可,可变长参数的类型为字典。
总结: *argv和**kw的区别
两个参数必须为函数定义中参数列表中的排名最后的参数。
*argv代表该参数位置可以放任意个数的数据,最终都会转换成元组数据类型在函数体内处理。
**kw代表该参数位置可以放k=v格式的数据,最终都会转换成字典类型数据安函数体内处理。
以上がPython 関数プログラミングの基礎の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。