2016-04-29 15 views

回答

3

您可以使用默認參數定義函數,稍後您可以檢查傳遞的值並將其打印出來。

def fun(a=1): 
    a = 1 if a is None else a 
    print(a) 

希望它有幫助。

0
>>> def function(a=1): 
...  print(a if a else 1) 
... 
>>> function(None) 
1 
>>> function(2) 
2 
>>> function(1) 
1 
>>> function(123) 
123 
>>> function(0) 
1 
2
def function(a=1): 
    if a is None: 
     a = 1 
+3

'function(0)=? ' –

+0

@AndreySobolev好點。 – 2016-04-29 07:36:45

1

應該使用無作爲默認參數。

def function(a=None): 
    if a == None: 
     a = 1 
    print a 

否則在多次調用函數時會遇到問題。

+0

「多次調用函數」是什麼意思?什麼樣的問題? –

+0

我想這個問題主要出現在可變數據類型中。這裏有一個很好的解釋它的鏈接:[link](http://docs.python-guide.org/en/latest/writing/gotchas/) – coralvanda

0
def function(a=1): 
    print(1 if a is None else a) 

function() 
function(None) 
function(2) 
function(0) 

輸出:

1 
1 
2 
0 
0

指定的默認值將是僅用於如果調用函數時,在所有你不及格的價值。如果您將其指定爲a=1,那麼使用零參數調用它確實將使用1作爲默認值,但使用None調用它將只將None設置爲a

當我想給None和案件「根本沒有指定」相同的含義,我這樣做:

def function(a=None): 
    if a is None: 
     a = 1 
    ... 

這樣,只要你想它會工作。此外,與像

def function(a=1): 
    if a is None: 
     a = 1 
    ... 

您指定的「默認」值(1)只有一次的其他解決方案。

相關問題