← Все вопросы

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

Задан 7 месяцев назад402 просмотров2 ответа
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 внутри — словарь.

Ваш ответ

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