記事ディレクトリ
序文
Python では、*
ANDの使用**
は関数の定義時か関数の呼び出し時かを区別する必要があります。
1.関数を定義する*
場合**
def deng(*args,**kwargs):
print(args)
print(kwargs)
deng(1,2,3,a = 4,b = 5)
関数を定義するときにパラメーターの前に使用され*
、関数を呼び出すときにキーワード以外のパラメーターが収集され、タプル引数に格納されることを意味します。
関数を定義するときにパラメーターの前に使用され**
、関数を呼び出すときにキーワード パラメーターが収集され、辞書 kwargs に保存されることを意味します。
2.関数呼び出し*
時**
関数を呼び出すときにパラメータの前に使用され*
、パラメータをアンパックする(位置パラメータに従ってシーケンス内の要素を関数に渡す)ことを意味します。
def deng(a,b,c,d):
print(a)
print(b)
print(c)
print(d)
list_a = [1,2,3,4]
deng(*list_a)
関数を呼び出すときにパラメータの前に使用され**
、パラメータをアンパックする(辞書内の要素をキーワードパラメータとして関数に渡す)ことを意味します。
def deng(a,b,c,d):
print(a)
print(b)
print(c)
print(d)
dict_a = {
'a' : 1,'b' : 3,'c' : 4,'d' : 2 }
deng(**dict_a)