我有很长的功能列表,我希望能够打电话给他们并让他们打印出他们的名字,并在完成后如下所示。
def call(*functions):
for f in functions:
print(f.__name__)
f()
print('{} completed'.format(f.__name__))
call(lambda: (long(), lst(), of(), func(), ions()...))
我不想在每个函数周围写print(f.__name__) ... print('{} completed'.format(f.__name__))
。但是,在上面的代码中,它打印了' lambda' (如预期的那样)。如何自动化这些函数调用/打印语句以便正确打印?
答案 0 :(得分:1)
你几乎有正确的想法,但你想将自己的函数传递给call
而不是lambda。
正如您的代码目前所示,您只传递一个函数lambda,它调用print语句之间的其他函数。
更改
call(lambda: (long(), lst(), of(), func(), ions()...))
到
call(long, lst, of, func, ions...))
答案 1 :(得分:1)
def call(*functions):
for f in functions:
print(f.__name__)
f()
print('{} completed'.format(f.__name__))
call(long, lst, of, func, ions...)
但是,使用map并简化call
:
def call(function):
print(f.__name__)
f()
print('{} completed'.format(f.__name__))
map(call, (long, lst, of, func, ions...))