Какой утвержденный шаблон программирования для распределения аргументов ключевых слов среди вызываемых функций?
Рассмотрим этот надуманный (и ошибочный) пример:
def create_box(**kwargs):
box = Box()
set_size(box, **kwargs)
set_appearance(box, **kwargs)
def set_size(box, width=1, height=1, length=1):
...
def set_appearance(box, material='cardboard', color='brown'):
...
Очевидно, что метод set_size()
будет возражать против полученияmaterial
или color
аргументы ключевых слов, так же как set_appearance()
будет возражать против получения width
, height
или length
аргументов.
Есть действительный аргумент, что create_box()
должен сделать все ключевое слово и значения по умолчанию явными, но очевидная реализация довольно громоздка:
def create_box(width=1, height=1, length=1, material='cardboard', color='brown'):
box = Box()
set_size(box, width=width, height=height, length=length)
set_appearance(box, material=material, color=color)
Есть ли более Pythonic способ приблизиться к этому