def print_args(*args):
for arg in args:
print(f'arg = {arg}')
print_args('a')
print_args('a', 'b')
print_args('a', 'b', 'c')
Output
arg = a
arg = a
arg = b
arg = a
arg = b
arg = c
arg = a
arg = b
arg = a
arg = b
arg = c
関数定義の後にコードによって print_args() が 3 回呼び出され、毎回異なる値が渡されている。
def print_args(*args):
print(args)
print(type(args))
print_args('a')
print_args('a', 'b')
print_args('a', 'b', 'c')
Output
('a',)
<class 'tuple'>
('a', 'b')
<class 'tuple'>
('a', 'b', 'c')
<class 'tuple'>
<class 'tuple'>
('a', 'b')
<class 'tuple'>
('a', 'b', 'c')
<class 'tuple'>
引数リストは型 list ではなく、型 tuple で表示される。
タプル型とは、複数のデータの組み合わせから構成されているデータを表現する場合をタプル という種類のオブジェクトを利用する。
print_keyword_args() 関数を 3 回呼び出します。'third' が存在しない場合は表示が行われず、存在している場合のみ出力されます。
def print_keyword_args(**kwargs):
third = kwargs.get('third', None)
if third != None:
print('third arg =', third)
print_keyword_args(first='a')
print_keyword_args(first='b', second='c')
print_keyword_args(first='d', second='e', third='f')
Output
third arg = f
キーワードと値を反復処理するようにコード例
def print_keyword_args(**kwargs):
print('\n')
third = kwargs.get('third', None)
if third != None:
print('third arg =', third)
print_keyword_args(first='a')
print_keyword_args(first='b', second='c')
print_keyword_args(first='d', second='e', third='f')
Output
first = a
first = b
second = c
first = d
second = e
third = f
third arg = f
getメソッドとは、
辞書型.get(キー, キーが存在しない場合の返り値)を取り出すメソッドです。
kwargs の値およびそのデータ型を出力するようにコード
def print_keyword_args(**kwargs):
print('\n')
print(kwargs)
print(type(kwargs))
third = kwargs.get('third', None)
if third != None:
print('third arg =', third)
print_keyword_args(first='a')
print_keyword_args(first='b', second='c')
print_keyword_args(first='d', second='e', third='f')
Output
{'first': 'a'}
<class 'dict'>
first = a
{'first': 'b', 'second': 'c'}
<class 'dict'>
first = b
second = c
{'first': 'd', 'second': 'e', 'third': 'f'}
<class 'dict'>
first = d
second = e
third = f
third arg = f
typeによってkwargs のデータ型は dict であることがわかります。