什么是在调用函数时分配关键字参数的批准编程模式?
考虑这个编写的(并且有缺陷的)例子:
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)
有没有更符合Python风格的方法来处理这个问题?