← Все вопросы

Как сделать функцию, которая принимает любые именованные аргументы, и пройтись по ним?

Задан 9 месяцев назад428 просмотров3 ответа
9

Хочу функцию-конфиг, которой можно передать что угодно по имени: config(debug=True, port=8080, name='app'). Список параметров заранее не известен. Как собрать все именованные аргументы и потом перебрать их парами ключ-значение?

3 ответа

16

Собирай их в **kwargs — это обычный словарь:

def config(**kwargs):
    for key, value in kwargs.items():
        print(f"{key} = {value}")

config(debug=True, port=8080, name='app')
# debug = True
# port = 8080
# name = app

Имя kwargs — традиция, важна только двойная звёздочка. Внутри это словарь, так что доступны .items(), .get('port'), 'debug' in kwargs и всё остальное.

Nick Dolbnya С Python 3.7 порядок ключей в kwargs сохраняется как при вызове · 9 месяцев назад
4

def config(**kwargs): for k, v in kwargs.items(): .... kwargs внутри — словарь.

0

def f(*args, **kwargs): ** - это словарь а *args - это кортеж из типов данных

Ваш ответ

Войдите, чтобы ответить на вопрос.