调用函数和打印函数的名称

时间:2016-04-07 22:53:17

标签: python function loops for-loop

我有很长的功能列表,我希望能够打电话给他们并让他们打印出他们的名字,并在完成后如下所示。

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' (如预期的那样)。如何自动化这些函数调用/打印语句以便正确打印?

2 个答案:

答案 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...))