2017-02-21 35 views
0

讓我們假設我有根據傳遞給函數的參數分支:參數分支

def args_func(foo=None, bar=None): 
    if foo: 
     print foo 
    else: 
     print baz 

args_func(foo='foobarbaz') 

這是在這種情況下分支的唯一途徑?這是因爲else子句是不明確的,而if子句是非常具體的,因爲它是有條件的(「如果foo是真的」),並且由於python的禪宗後面只有兩個可能的參數,所以顯式比隱式更好。

也許if/else不是這個任務的正確構造?

+0

有兩個獨立的功能呢? – miradulo

+0

不,這將是ajax調用的後端,我希望有相同的函數接收調用。 –

回答

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是一個錯字。

如果您正在尋找除這個原始答案以外的東西,您將需要給出一個更現實的例子,說明您正在嘗試做什麼。

+0

修正了錯字。 我認爲你的建議很簡單但非常簡潔。這裏沒有什麼特別的想法,只能寫出更清晰的代碼。 –