2017-05-01 1 views
0

Wie beendet Rückkehr alle Instanzen in einer Rekursion? Im Folgenden scheint es mir, dass die einzige Zeit, die return-Anweisung ist in dem Basisfall genannt, und doch scheint es, alle anderen Instanzen zu schließen, wo n> 1.Wie beendet Rückkehr alle Instanzen einer Rekursion in Python

def reco(n): 
    print('create instance nbr ', n) 
    if n == 1: 
     print('base case reached, instances will be popped LIFO') 
     return 
    else: 
     n -= 1 
     reco(n) 
    print('pop instance nbr ', n) 


n = 5 
reco(n) 

Antwort

1

Du hast Recht, Die Anweisung return wird nur einmal ausgeführt, aber der Aufruf reco() ist die zweitletzte Anweisung in allen anderen Instanzen. Die Ausführung fällt nur am Ende der anderen Instanzen aus.

Es könnte hilfreich sein, wenn Sie sich vorstellen, dass jeder Funktionskörper am Ende eine implizite return None-Anweisung hat.

Verwandte Themen