python関数パラメータ

1574 ワード

https://www.cnblogs.com/aszeno/p/10384887.html
https://www.cnblogs.com/aszeno/p/10386149.html
リンクの文章は比較的詳しく、簡単に要約します.
 
1.位置パラメータ
関数の呼び出し時に指定する必要があります.直接関数呼び出し時に対応する位置に値を割り当てるか、キーワードで指定できます.実参が必要です.
2.デフォルトパラメータ
関数定義時にdefault値が指定されています.関数呼び出し時にこのパラメータに値を割り当てなくてもいいです.
関数を定義するときは、すべてのデフォルトパラメータが位置パラメータの後にある必要があります.
3.キーワードパラメータ
これは、関数呼び出し時にパラメータ名と実パラメータ値が指定されていることを意味します.すなわち、関数呼び出しはargx=xxxの形式で与えられる.
4.可変長パラメータ(パラメータグループ)
関数定義時:
*argsはtupleタイプパラメータグループを表します.ただし、呼び出し時のパラメータがtupleであることを示さず、呼び出し時のパラメータフォーマットがargx,argyであることを示す
**kwargsは辞書タイプパラメータグループを表します.ただし、呼び出し時のパラメータをdictとしない.呼び出し時のパラメータフォーマットがargx=xx,argy=yyであることを示す
関数呼び出し時、
実パラメータがtupleの場合、tupleのitemを関数の可変パラメータにするには、tupleの前に*を付ける必要があります.
実パラメータがdictの場合、dictのitemを関数のキーワードパラメータにするには、dictの前に**を付ける必要があります.
 
すなわち、可変パラメータの呼び出しには、次の2つの方法があります.
可変パラメータは直接入力できます:func(1,2,3)、listまたはtupleを組み立ててて、*argsを通じて入力できます:func(*(1,2,3);
キーワードパラメータは、func(a=1,b=2)に直接入力することもできますし、dictを組み立てててて、*kwを介して:func(*{'a':1,'b':2})に入力することもできます.
 
注意:
関数を定義する場合、可変長パラメータは位置パラメータとデフォルトパラメータの後にする必要があります.辞書タイプのパラメータグループは最後でなければなりません.
 
5.リスト/タプル/ディクショナリは、関数のパラメータとして使用できます(オブジェクトであるため、オブジェクトは単一の変数として関数に渡すことができます).
関数パラメータとして使用する場合は、パラメータのセットではなく、関数のパラメータの1つしか表示されません.関数では、リストと辞書の値を変更できます.また、この変更により、入力変数の値が永久に変更されます.
関数のリスト値の変更を禁止する場合は、次の手順に従います.
#        
print_models(unprinted_designs[:],completed_models)