このコードを実行結果での return 3 となった後の処理についてで
- なぜ関数再帰が終わったあと under という行だけが実行されるのか
- なぜ self.d の値が減っていくのか
を教えていただきたいです。
class k(): def __init__(self,maxd): self.maxd = maxd def func(self,d_): self.d = d_ print("upper",self.d) if self.maxd == self.d: print("return",self.d) return insta = k(self.maxd) insta.func(d_+1) print("under",self.d) p= k(3) p.func(0)
upper 0
upper 1
upper 2
upper 3
return 3
under 2
under 1
under 0

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。