2014-12-20 10 views
5

Ich versuche, einen Standardwert für ein Argument in einer Funktion, die ich definiert habe, zu setzen. Ich möchte auch ein anderes Argument, um einen Standardwert abhängig von dem anderen Argument zu haben. In meinem Beispiel versuche ich, die quantenmechanische Wellenfunktion für Wasserstoff aufzuzeichnen, aber Sie müssen die Physik nicht kennen, um mir zu helfen.Einstellung der Standardwerte von Argumenten in Python

def plot_psi(n,l,start=(0.001*bohr),stop=(20*bohr),step=(0.005*bohr)): 

wo n ist die Hauptquantenzahl ist l der Drehimpuls und start,stop,step wird das Array I berechnen über. Aber was ich brauche, ist, dass der Standardwert von stop tatsächlich von n abhängt, da n die Größe der Wellenfunktion beeinflussen wird.

def plot_psi(n,l,start=(0.001*bohr),stop=((30*n-10)*bohr),step=(0.005*bohr)): 

wäre, was ich wollte, aber n ist noch nicht definiert, weil die Leitung nicht abgeschlossen ist. Irgendwelche Lösungen? Oder Ideen für eine andere Art, es zu arrangieren? Dank

Antwort

3

Verwenden None als Standardwert, und berechnen Sie die Werte innerhalb der Funktion, wie diese

def plot_psi(n, l, start=(0.001*bohr),stop=None,step=(0.005*bohr)): 
    if stop is None: 
     stop = ((30*n-10)*bohr) 
+1

Sollte es nicht sein, 'wenn Anschlag None' ist? –