递归中可以函数自身调用自身,但是使用类似于条件循环一样,要有递归终止条件,如果没有终止条件,无线调用自身,就会报错,这样做的目的就是为了防止无限消耗cpu资源
简单示例
def factorial(n):
if n == 0:
return 1
elif n == 1:
return 1
else:
return factorial(n-1)*n
n = eval(input('请输入一个数字>>>>>>>'))
a = factorial(n)
print(a)
输出结果
请输入一个数字>>>>>>>5
5
120
但是像这样就会消耗cpu报错
def func():
print('hello world')
return func()
func()
输出结果
回调
回调函数,自身就是一个函数,只是被传入到另一个函数中,供其调用,回调函数不一定会被调用,是否调用由被传入函数的内部逻辑决定
简单示例
def func1(callback):
#return callback()
callback()
def callback():
#return '这是需要被回调调用的函数'
print('hello python')
# var = func1(func2)
# print(var)
func1(callback)
输出结果
hello python