Python函数在调用时不返回任何内容

时间:2017-12-08 14:29:39

标签: python python-3.x function

def my_test(some_function):

    def wrapper():

        num = 10

        if num == 10:
            print("Yes")
        else:
            print("No")

        some_function()

        print("Something is happening after some_function() is called")

    return wrapper


def just_some_function():
    print("Filler text")

my_test(just_some_function)

当我运行此脚本时,它应显示:

  

     

填充文字

     

调用some_function()之后发生了一些事情

,因为my_test(just_some_function)调用my_test,通过包装函数,检查是否num == 10,打印"是,"然后转到just_some_function()(因为some_function是"变量"对于函数my_test()),打印"填充文本,"最后通过打印结束"在调用some_function()之后发生了一些事情。"但是当我运行脚本时,控制台中没有任何反应。

1 个答案:

答案 0 :(得分:1)

my_test是一个高阶函数;它所做的就是返回另一个函数,在本例中为wrapper。你需要实际调用返回的函数:

my_test(just_some_function)()

注意,除了用于演示目的 - 或作为装饰器 - 这是编写代码的一种非常无意义的方式。