все Python 3Функциипонятие
**kwargs
параметры
Принимает произвольное число ключевых аргументов как словарь.
Синтаксис
def f(**kwargs): ...
Внутри функции kwargs — обычный словарь, и начиная с Python 3.6 (PEP 468) он хранит аргументы в порядке их передачи. В сигнатуре **kwargs идёт последним; двойная звёздочка в вызове f(**d) делает обратное — раскладывает словарь в именованные аргументы.
Примеры
def show(**kwargs):
for k, v in kwargs.items():
print(k, v)
show(a=1, b=2) # → a 1 / b 2
opts = {'timeout': 30, 'retry': 3}
show(**opts) # → timeout 30 / retry 3 — ** раскладывает словарь обратно
def config(**kwargs):
return kwargs
print(config(host='localhost', port=80)) # → {'host': 'localhost', 'port': 80}
def connect(host, port, **kwargs):
print(host, port, kwargs)
connect('srv', 443, ssl=True) # → srv 443 {'ssl': True}
def merge(base, **overrides):
d = base.copy()
d.update(overrides)
return d
print(merge({'a': 1}, b=2)) # → {'a': 1, 'b': 2}
def forward(*args, **kwargs):
print(args, kwargs)
forward(1, 2, x=3) # → (1, 2) {'x': 3}
def all_args(a, *args, **kwargs):
return a, args, kwargs
print(all_args(1, 2, 3, x=4)) # → (1, (2, 3), {'x': 4})
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности