by shigemk2

当面は技術的なことしか書かない

argsとkargs

[Python] 可変長引数あれこれ | memlog

argsというtuple型の変数にキーワード無しの引数が、
kwargsというdict型の変数にキーワード付きの引数が入ります。

def hoge1(*args, **kwargs):
    print args
    print kwargs

hoge1(1, 2, 3, ['a', 'b', 'c'], name='my_name', data='100')

# (1, 2, 3, ['a', 'b', 'c'])
# {'data': '100', 'name': 'my_name'}

def hoge2(*args, **kwargs):
    foo(args, kwargs)

def foo(*args, **kwargs):
    print args
    print kwargs

hoge2(1, 2, 3, ['a', 'b', 'c'], name='my_name', data='100')

# ((1, 2, 3, ['a', 'b', 'c']), {'data': '100', 'name': 'my_name'})
# {}

def hoge3(*args, **kwargs):
    foo(*args, **kwargs)

def foo(*args, **kwargs):
    print args
    print kwargs

hoge3(1, 2, 3, ['a', 'b', 'c'], name='my_name', data='100')

# (1, 2, 3, ['a', 'b', 'c'])
# {'data': '100', 'name': 'my_name'}

ほあ。