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 に答える