← Все вопросы
Как сделать функцию, которая принимает любые именованные аргументы, и пройтись по ним?
9
Хочу функцию-конфиг, которой можно передать что угодно по имени: config(debug=True, port=8080, name='app'). Список параметров заранее не известен. Как собрать все именованные аргументы и потом перебрать их парами ключ-значение?
2 ответа
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 сохраняется как при вызове · 7 месяцев назад
4
def config(**kwargs): for k, v in kwargs.items(): .... kwargs внутри — словарь.
Ваш ответ
Войдите, чтобы ответить на вопрос.