2015-03-02 88 views

回答

3

這個怎麼樣?

def foo(arg1, arg2, src, dst=None): 
    dst = dst if dst is not None else src 

測試:

>>> def foo(arg1, arg2, src, dst=None): 
...  dst = dst if dst is not None else src 
...  print dst 
... 
>>> foo(0, 0, "test") 
test 

繼@TanveerAlam的評論,我不想讓你的參數假設(怎麼辦?如果dst可以False),我沒有使用在我原來的帖子中較短的版本,我會留在這裏作爲參考:

def foo(arg1, arg2, src, dst=None): 
    dst = dst if dst else src 

或ev EN:

def foo(arg1, arg2, src, dst=None): 
    dst = dst or src 

注意,這些版本將阻止dstNone其他值(如False[] ...)

+0

是啊,這是偉大的,非常感謝你! :) – user1967718 2015-03-02 08:35:13

+0

'dst = dst if dst else src'這會工作,因爲'None'的'bool'值是'False'。 – 2015-03-02 08:37:16

+0

我寧願'dst = dst或src'。有點更清楚,重複性更低,並且依賴於與dst相同的行爲,如果dst else src – Kroltan 2015-03-02 08:50:10

相關問題