0
0

More than 1 year has passed since last update.

【python】関数の引数[py_02_20211004]

Last updated at Posted at 2021-10-05

はじめに

関数へ渡す引数について、いろいろあります。

実行環境

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}

今回はここまで。

参考資料

引数にデフォルト値を設定する

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0