1

这是我第一次来,所以我希望你能耐心等待一个看起来很蹩脚的问题:)

我正在尝试编写一个名为的函数do_n,它接受一个函数对象和一个数字n,作为参数,然后调用给定的函数n时间。这是代码:

def name():
    print 'Jack'

def do_n(fo, x):
    if x <= 0:
        return
    print fo
    (fo, x-1)

从 main 中进行函数调用时:

do_n(name, 3)

我得到以下结果:

<function name at 0x01F93AF0>

我试图让程序打印出来:

Jack
Jack
Jack

提前谢谢了

4

2 回答 2

5

您既没有调用该函数,也没有实际进行递归调用。修正版:

def name():
    print 'Jack'

def do_n(fo, x):
    if x <= 0:
        return
    fo()
    do_n(fo, x - 1)

要调用函数n次数,您通常会在 Python 中使用 for 循环而不是尾递归:

for dummy in range(10):
    name()
于 2012-04-10T09:49:08.240 回答
2

函数是 Python 中的一等对象。

fo()
于 2012-04-10T09:47:21.827 回答