2014-12-20 28 views
5

Próbuję ustawić domyślną wartość argumentu w funkcji, którą zdefiniowałem. Chcę również innego argumentu, aby wartość domyślna była zależna od innego argumentu. W moim przykładzie próbuję wykreślić mechaniczną funkcję falową dla wodoru, ale nie musisz znać fizyki, aby mi pomóc.Ustawienie domyślnych argumentów z argumentów w pythonie

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

gdzie n jest zasada liczbą kwantową, l jest moment pędu i start,stop,step będzie tablica obliczyć drugą. Ale potrzebuję, aby domyślna wartość stop faktycznie była zależna od n, ponieważ n wpłynie na rozmiar funkcji falowej.

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

byłoby to, co się dzieje za, ale n nie została jeszcze określona, ​​ponieważ linia nie jest kompletna. Jakieś rozwiązania? A może pomysły na inny sposób aranżacji? Dzięki

Odpowiedz

3

Zastosowanie None jako wartość domyślną, i obliczyć wartości wewnątrz funkcji, jak to

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

nie powinno być 'jeśli przystanek jest None'? –

Powiązane problemy