Pythonの研究ノート、ビデオday14-機能

機能

  利点

  1. コードの再利用
  2. 一貫性、メンテナンスが容易
  3. スケーラビリティ

  関数の引数

    パラメータ:コールの終了時にメモリを解放するために呼び出されたときにメモリを割り当てます

    引数:メモリを取ります

    一対一の位置パラメータ、キーワードパラメータ

  要約:

    値= 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}

 

 

  

おすすめ

転載: www.cnblogs.com/ppll/p/11538046.html