Функции Python принимают ключевые аргументы. Если вы определяете функцию следующим образом:
def my_func(a, b='abc', c='def'):
print a, b, c
Вы можете назвать это так:
my_func('hello', c='world')
И результат будет:
hello abc world
Вы также можете поддерживать динамические аргументы ключевых слов, используя специальный синтаксис:
def my_other_func(a, *b, **c):
print a, b, c
*b
означает, что переменная b
будет принимать все неназванные аргументы после a
как объект tuple
.
**c
означает, что переменная c
будет принимать все именованные аргументы как объект dict
.
Если вы вызываете функцию следующим образом:
my_other_func('hello', 'world', 'what a', state='fine', what='day')
Вы получите:
hello ('world', 'what a') {'state': 'fine', 'what': 'day'}