2016-04-29 16 views

Antwort

3

Sie können eine Funktion mit einem Standardparameter definieren, Später können Sie den übergebenen Wert prüfen und ausdrucken.

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

Ich hoffe, es hilft.

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

'Funktion (0) =? ' –

+0

@AndreySobolev Guter Punkt. –

1

Sollte keine als Standard-Parameter verwenden.

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

Andernfalls treten Probleme auf, wenn Sie die Funktion mehrmals aufrufen.

+0

Was meinst du mit "die Funktion mehrmals aufrufen"? Welche Art von Problemen? –

+0

Ich nehme an, dass das Problem meistens mit veränderbaren Datentypen auftritt. Hier ist ein Link, der es schön erklärt: [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) 

Ausgang:

1 
1 
2 
0 
0

Der Standardwert Sie angeben, wird nur dann verwendet werden, wenn Sie nicht den Wert übergeben, wenn die Funktion überhaupt aufrufen. Wenn Sie es als a=1 angegeben haben, dann würde das Aufrufen mit Null-Argumenten tatsächlich 1 als Standardwert verwenden, aber wenn Sie es mit None aufrufen, wird None einfach auf a gesetzt.

Wenn ich möchte Fällen die gleiche Bedeutung der None und „überhaupt keine Angabe“ geben, ich dies tun:

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

Auf diese Weise will es wie Sie arbeiten. Auch im Vergleich zu den anderen Lösungen wie

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

Sie den „default“ Wert angeben (die 1) nur einmal.