【发布时间】:2017-12-13 12:35:59
【问题描述】:
我只是想知道如何用 Python 代码来解决这个问题:
假设你有一个函数:
def do_stuff(a=True, b=True, c=True, d=True):
在那个函数里面你要构造相应的对象:
elements = []
if a:
elements.append(A())
if b:
elements.append(B())
if c:
elements.append(C())
if d:
elements.append(D())
有没有更优美的方式来编写这段代码?如果不是,可选参数可能不是“要走的路”?
【问题讨论】:
-
是否有不希望用户传入
elementslist 的原因? -
绝对有可能。虽然这只是一个哲学和美学问题。欢迎使用其他方法!
-
@LaimonasSutkus 问题是,什么是 A、B、C 和 D?
-
抱歉不够具体。但目的是我在这里构造新对象。 A B C 和 D 是类。但是如果我要说 A B C 和 D 是方法,它会改变什么吗?
-
用这些单独的参数来控制同一列表中元素的存在似乎有点不寻常。如果这些元素足够同质,可以在同一个列表中处理,我希望输入形式比单独的参数更统一;或者,
A、B、C和D都是单独的类,将所有对象填充到同一个列表中可能没有意义。