機能
利点
- コードの再利用
- 一貫性、メンテナンスが容易
- スケーラビリティ
関数の引数
パラメータ:コールの終了時にメモリを解放するために呼び出されたときにメモリを割り当てます
引数:メモリを取ります
一対一の位置パラメータ、キーワードパラメータ
要約:
値= 0、Noneを返します
関数名=値の数を返し、関数が戻り値を返します。
その他の値=戻り値は、他の返却します
プロセス:で、この関数は値を返しません。
補足:二つの機能と同じ名前、新しい関数を呼び出します
この関数はすぐに終了リターンに遭遇します
DEF試験(X): "関数定義" Y = 2 * X + 1つの 戻りY A =テスト(3) プリント(A) #1结果の#7
試験DEF(X): "関数の定義" 。Y = 2 * X + 1つの 戻りYの印刷(テスト) #結果、メモリアドレスを印刷#<0x008D07C8で機能テスト>
#戻り値はNoneです DEF :TEST01() MSG = " こんにちは" 印刷(MSG) DEF TEST02(): MSG = " hello2の" 印刷(MSG) を返すMSG T1 = TEST01() T2 = TEST02() 印刷(T1) 印刷(T2)
#结果
#こんにちは
#hello2
#なし
#hello2
デフTEST01(): MSG = " こんにちは" 印刷(MSG) DEF TEST02(): MSG = " hello2 " 印刷(MSG) リターンMSGの デフTEST03(): MSG = " hello3 " 印刷(MSG) を返す 1,2,43を、{ " 名前":" アレックス" } T1 = TEST01() T2 = TEST02() T3 = TEST03() 印刷(T1) プリント(T2) プリント(T3) #结果 #こんにちは #hello2 #hello3 #なし #1 hello2の #(1、2、43、{ '名前': 'アレックス'})
関数の引数
#の位置パラメータ対応必須、また複数 DEF テスト(X、Y、Z): プリント(X) プリント(Y) プリント(Z) テスト( 1,3,2 ) #の結果 #1 #3 #2 #のキーワードパラメータ対応必須なくて、また複数 DEF テスト(X、Y、Z): プリント(X) プリント(Y) プリント(Z) 試験(X = 1、。 3 = Z、Y = 2 ) #の結果 #1 #2 #3 #ミックス位置パラメータがキーパラメータをままにしておく必要があり、位置パラメータが対応している必要があり DEF試験(X、Y、Z): プリント(X) プリント(Y) プリント(Z) 試験( 1,3、Z = 2 ) #の結果 #1 #3 #2
#のデフォルトパラメータの事前割り当て DEFのハンドル(タイプ=のX-、なし): 印刷(X-) プリント(型の) ハンドル( 1 ) #の結果 #1 #なし DEFハンドル(X-、タイプ= なし): 印刷(X-) 印刷(タイプ) ハンドル(" こんにちは"、タイプ= " こんにちは" ) #の結果 #こんにちは #こんにちは #の位置パラメータ DEFのハンドル(X、タイプ= なし): 印刷(X) 印刷(タイプ) ハンドル(" こんにちは"、" こんにちは" ) #结果 #こんにちは #1 HI
パラメータ:*リスト、 **辞書
#パラメータグループ:**辞書、リスト* DEFテスト(X、* 引数): 印刷(X) 印刷(引数) を印刷(引数[1 ]) テスト( 1,22,34,5 ) #の結果 #1 #( 22、34、5) #34
#は空を通過しない
テスト(X-、*引数)DEF:
プリント(X-)
プリント(引数)
試験(1)
#結果
#1
#()
#場合にタプルとして辞書、 DEFテスト(X、* 引数): プリント(X) プリント(引数) 試験( 1、{ " 名前":22である}) #の結果 #1 #({「名前「:22}) #場合にタプルとしてリスト、 DEFテスト(X、* 引数): プリント(X) プリント(引数) プリント(引数[0] [0]) 試験( 1、[ " X "、" Y "、" Z " ]) #結果 #1 #([ 'X'、 'Y'、 'Z']) #1 Xの
#1 * [ "X"、 "Y"、 "Z"]、再び順次割り当てリスト・トラバーサル; "X"、全体の最初の要素を通過しなければならなかったように「Y」、「Z」]はリストを表します
デフテスト(X、*引数):
印刷( 'X')
プリント(引数)
試験(1、* [ "X"、 "Y"、 "Z"] )#
の结果の
#( 'X'、 'Y'、 'Z')
#2つのパラメータ値を渡すことができない DEFテスト(X、** kwargsから): プリント(X) プリント(kwargsから) 試験( 1、Y = 2、Z = 3。 )# の結果 #1。 #{ 'Y':2、 'Z':} 3。 DEFテスト(X、*引数、** kwargsから): プリント(X) プリント(引数) プリント(kwargsから) 試験( 1、Y = 2、Z = 3 ) #の結果 #1 #() #{ 'Y' 2、Z '':3}。 DEFテスト(X、*引数、** kwargsから): プリント(X) 印刷(引数) プリント(kwargsから) 試験( 1,2,5,76,7、Y = 2、Z = 3。 )# の結果 #1。 #(2 ,. 5、76 ,. 7) #{ 'Y':2 ' Z「:3}