Python函数里面的函数

Cap*_*uzz 2 python string function

我正在阅读Python书籍中的练习,这里是它的内容:

修改do_twice以便它接受两个参数,一个函数对象和一个值,并调用该函数两次,将该值作为参数传递.

编写一个更通用的print_spam版本,名为print_twice,它将字符串作为参数并将其打印两次.

使用修改后的do_twice版本调用print_twice两次,将'spam'作为参数传递.

这是我写的:

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

def print_spam(s):
    print (s)

do_twice(print_spam('lol'))
Run Code Online (Sandbox Code Playgroud)

应该写的是什么方式?我完全被这个困扰了.

roo*_*oot 7

把它string作为第二个参数给出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')
Run Code Online (Sandbox Code Playgroud)

打印:

lol
lol
Run Code Online (Sandbox Code Playgroud)