【发布时间】:2018-03-08 05:50:15
【问题描述】:
是否有一种(干净、简单)的方法可以将关键字 args 设置为参数列表中的其他关键字 args?像这样的:
class Foo():
def __init__(self, kwarg1='a', kwarg2=kwarg1, kwarg3=kwarg1):
我基本上需要所有三个都具有相同的默认值,而无需对其进行硬编码。这样,如果用户想要将kwarg1编辑为其他内容,kwarg2 和 kwarg3 的默认值将默认为也有新的价值;但如果需要,仍然允许自定义 kwarg2 和 kwarg3 的功能。
我想我可以这样做:
class Foo():
def __init__(self, kwarg1='a', kwarg2='', kwarg3=''):
if kwarg2 == '':
self.kwarg2 = kwarg1
if kwarg3 == '':
self.kwarg3 = kwarg1
这有点丑。我知道这是一个奇怪的问题。只是有点好奇是否有更清洁的方法来实现这一点。
【问题讨论】:
标签: python arguments refactoring keyword abstraction