def power(x,y):
if y==0:
return 1
else:
return x*power(x,y-1)
print(power(2,3))
代码的输出是8,为什么是8,是2**3?
假设x=2和y=3
这个函数将运行。每次运行它都会执行x*something_to_get。
现在它试图找到something_to_get是什么。嗯something_to_get=power(x, y-1)(这里x=2和y=2)所以它做power(x,y-1)。同样的事情在power(x,y-1)中再次发生。它会如此x*something_to_get。something_to_get是power(x,y-1)(这里x=2和y=1)
此过程继续发生,直到y=0。它返回1。
最后你会有2*2*2*1=2**3=8