Python学習の基礎言語編——関数パラメータの詳細
Pythonの関数のパラメータは主に2つのパラメータ、位置パラメータとキーワードパラメータを追跡します
キーワードパラメータにはデフォルト値があり、位置パラメータにはデフォルト値がありません.
解析の原則:定義および呼び出し関数における位置パラメータは、キーワードパラメータの前の に置くべきである.非任意の数の位置パラメータはキーワードパラメータによって値を伝達することができ、任意の数の位置パラメータはキーワードパラメータによって値を伝達することができない .任意の数の位置パラメータの後にキーワードパラメータ(定義関数または関数伝値) を接続する必要があります.任意の数の位置パラメータと任意の数のキーワードパラメータは、定義で1回のみ定義できます. 任意の数のキーワードパラメータは、すべてのタイプのパラメータの次の1つに配置される:非任意の数の位置パラメータまたはキーワードパラメータ .
1.純粋な位置パラメータは、複数のパラメータ間の相対的な位置です.たとえば、次のようになります.
2.純粋なキーワードパラメータは、実際にはパラメータの付与値であり、パラメータのデフォルト値を設定するために使用されます.たとえば、次のようにします.
3.位置パラメータはキーワードパラメータと混在しており、位置パラメータは一般的にキーワードパラメータの前に置かれます.
二:任意の数量の位置パラメータまたはキーワードパラメータ
1.任意の数の位置パラメータ、解析器は一般的にリストまたはtupleとしてパッケージされ、パラメータの前に「*」を付けて表示されます.
2.任意の数のキーワードパラメータ、コンパイラは一般的にdictとしてパッケージされ、パラメータの前に「**」と表示されます.たとえば、次のようになります.
三:混載例:
キーワードパラメータにはデフォルト値があり、位置パラメータにはデフォルト値がありません.
解析の原則:
1.純粋な位置パラメータは、複数のパラメータ間の相対的な位置です.たとえば、次のようになります.
def f(arge1,arge2,arge3,arge4):
print(arge1,arge2,arge3,arge4)
pass
f(1,'a',3,4)# 1,a,3,4
f(1,2,arge3=2,arge4=4)# 1,2,2,4
# 4 ,
f(1)
f(1,'a')
f(1,'a',3)
f(1,arge2=2,3,4)# 1
2.純粋なキーワードパラメータは、実際にはパラメータの付与値であり、パラメータのデフォルト値を設定するために使用されます.たとえば、次のようにします.
def f(arge1=1,arge2=2,arge3=3,arge4=4):
print(arge1,arge2,arge3,arge4)
pass
f()# 1,2,3,4
f(3)# 3,2,3,4
f(arge3=3)# 1,2,3,4
f(2,arge3=3)# 2,2,3,4
# , 1
f(arge3=3,3)
3.位置パラメータはキーワードパラメータと混在しており、位置パラメータは一般的にキーワードパラメータの前に置かれます.
def f(arge1,arge2,arge3,arge4=3):
print(arge1,arge2,arge3,arge4)
pass
f(1,2,3,4)# 1,2,3,4
f(1,2,3)# 1,2,3,3
f(1,2,arge3=2,arge4=2)# 1,2,2,2
f(1,2,arge3=3)# 1,2,3,3
# , 1
f(1,arge2=2,3)
f(1,arge2=2,3,arge4=3)
def f(arge1,arge2,arge3=3,arge4):
print(arge1,arge2,arge3,arge4)
pass
二:任意の数量の位置パラメータまたはキーワードパラメータ
1.任意の数の位置パラメータ、解析器は一般的にリストまたはtupleとしてパッケージされ、パラメータの前に「*」を付けて表示されます.
def f(arge1,*arge2,arge3):
print(arge1,arge2,arge3)
pass
f(1,*(2,2),arge3=3)# 1,(2,2),3
f(1,(2,2),arge3=3)# 1,((2,2),),3
def ff(arge1,arge2,*arge3):
print(arge1,arge2,arge3)
pass
ff(1,2,*(2,2))# 1,2,(2,2)
#
f(1,*(2,2),3)# 3
f(arge1=1,*(2,2),arge3=3)# 1
f(1,arge2=(2,2),arge3=3)# 2
def f(arge1,*arge2,*arge3):# 4
print(arge1,arge2,arge3)
pass
2.任意の数のキーワードパラメータ、コンパイラは一般的にdictとしてパッケージされ、パラメータの前に「**」と表示されます.たとえば、次のようになります.
def f(arge1,*arge2,**arge3):
print(arge1,arge2,arge3)
pass
f(1,3,2,4,y=2,x=1) 1,(3,2,4),{'x':1,'y':2}
#
# 5
def f1(arge1,**arge2,*arge3):
print(arge1,arge2,arge3)
pass
def f2(arge1,**arge2,arge3):
print(arge1,arge2,arge3)
pass
def f3(arge1,**arge2,arge3=4):
print(arge1,arge2,arge3)
pass
三:混載例:
def f(arg1, arg2='hello', *args, **kwargs):
print(arg1, arg2, args, kwargs)
f(1,3,3)# 1,'hello',(3,3),{}
f(1,x=1)# 1,'hello',(),{'x':1}