2

私はPythonの本から演習を読んでいます.これがその内容です:

do_twice を変更して、関数オブジェクトと値の 2 つの引数を取り、値を引数として渡して関数を 2 回呼び出すようにします。

パラメータとして文字列を取り、それを 2 回出力する、print_twice と呼ばれるより一般的なバージョンの print_spam を作成します。

do_twice の修正版を使用して print_twice を 2 回呼び出し、'spam' を引数として渡します。

ここに私が書いたものがあります:

def do_twice(f, g):
    f(g)
    f(g)

def print_spam(s):
    print (s)

do_twice(print_spam('lol'))

それはどのように書かれるべきですか?私はこれに完全に困惑しています。

4

4 に答える 4

7

stringの 2 番目の引数としてを与えるだけdo_twiceです。do_twice関数は を呼び出し、を引数としてprint_spam提供します。string

def do_twice(f, g):
    f(g)
    f(g)

def print_spam(s):
    print (s)

do_twice(print_spam,'lol')

プリント:

lol
lol
于 2013-01-17T22:07:01.867 に答える
1

If for some reason you wanted to repeat the function n amount of times, you could also write something like this...

def do_n(f,g,n):
    for i in range(n):
        f(g)

do_n(print_spam,'lol',5)

lol
lol
lol
lol
lol
于 2013-01-17T22:49:57.007 に答える
0
def do_twice(func, arg):
    """Runs a function twice.

    func: function object
    arg: argument passed to the function
    """
    func(arg)
    func(arg)


def print_twice(arg):
    """Prints the argument twice.

    arg: anything printable
    """
    print(arg)
    print(arg)


def do_four(func, arg):
    """Runs a function four times.

    func: function object
    arg: argument passed to the function
    """
    do_twice(func, arg)
    do_twice(func, arg)


do_twice(print_twice, 'spam')
print('')

do_four(print_twice, 'spam')
于 2016-01-18T13:23:57.273 に答える