基于参数的分支

时间:2017-02-21 01:41:02

标签: python

假设我必须根据传递给函数的参数进行分支:

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不是这项任务的正确构造?

1 个答案:

答案 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是拼写错误。

如果您正在寻找除了这个原始答案之外的其他内容,那么您需要提供一个更真实的例子来说明您正在尝试做什么。