假设我必须根据传递给函数的参数进行分支:
def args_func(foo=None, bar=None):
if foo:
print foo
else:
print baz
args_func(foo='foobarbaz')
这是在这种情况下分支的唯一方法吗?这是因为else子句是不明确的,而if子句是非常具体的条件("如果foo是真的")并且因为我只有两个可能的参数跟随python的zen,显式比隐含更好。
也许if / else不是这项任务的正确构造?
答案 0 :(得分:1)
else子句不明确
然后让它变得模棱两可:
def args_func(foo=None, bar=None):
if foo:
print foo
elif bar:
print bar
# Add elif's here for other arguments
else:
raise ValueError("no arguments given")
这假设daz
是拼写错误。
如果您正在寻找除了这个原始答案之外的其他内容,那么您需要提供一个更真实的例子来说明您正在尝试做什么。