###はじめに
関数へ渡す引数について、いろいろあります。
###実行環境
pycharm 2021.2(python3.10)
###コード1
基本的な位置引数のデフォルト値設定の記述
(位置引数の場合、デフォルト値設定は設定しない位置引数の後でなければならない)
def func(a,b=4):
print('a:'+str(a))
print('b:'+str(b))
func(1)
表示
a:1
b:4
###コード2
キーワード引数はこんなカンジ。
def func(a, b, c):
print('a:'+str(a) + ' b:'+str(b)) + ' c:'+str(c))
func(b=2, c=3, a=1)
表示
a:1 b:2 c:3
###コード3
引数にリストを利用する場合の注意点を記述しておきます。
def func(a, results=[]):
results.append(a)
return results
print(func(1))
print(func(2))
表示
[1]
[1, 2]
resultsは一回評価されてしまうので、単純にリストへの追加が実行されてしまう。これを防止するためには…
def func(a, results=None):
if results is None:
results = []
results.append(a)
return results
print(func(1))
print(func(2))
表示
[1]
[2]
###コード4
位置引数をタプルで受け取る。任意の数の引数を受け取るように指定することができる。
def func(*args):
print(args)
func()
func(1, 2, 3, 4)
表示
()
(1, 2, 3, 4)
###コード5
キーワード引数を辞書で受け取る
def func(**kwargs):
print(kwargs)
func()
func(a=1, b=2, c=3, d=4)
表示
{}
{'b': 2, 'd': 4, 'c': 3, 'a': 1}
便利ですね〜。
では、デフォルト引数との組み合わせ
def func(a=0, **kwargs):
print('a:', a)
print('kwargs:', kwargs)
func()
func(a=1, b=2, c=3, d=4)
表示
a: 0
kwargs: {}
a: 1
kwargs: {'c': 3, 'b': 2, 'd': 4}
今回はここまで。
###参考資料
引数にデフォルト値を設定する