目标是将函数和数字作为参数传递给另一个函数,然后递归调用函数n次。我实现了这两种方式。此版本按预期工作,打印Hello World
3次:Python:传递函数并递归调用
def do_n(fx, n):
if n <= 0:
return
else:
print(fx)
do_n(fx, n-1)
def return_greeting():
return "Hello World"
do_n(return_greeting(), 3)
此版本不起作用。它打印Hello World
只有一次,然后似乎在第一时间通过后,就失去了被调用函数:
def do_n(fx, n):
if n <= 0:
return
else:
fx
do_n(fx, n-1)
def print_greeting():
print("Hello World")
do_n(print_greeting(), 3)
有人可以解释为什么第二个版本不print_greeting
导致被称为3次,打印Hello World
3倍到屏幕?
你可以张贴实际的代码? '定义'这里会引发'SyntaxError' ... – mgilson