Python Glossary English

все 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Сообщить о неточности