当未分配返回的函数时,为什么没有错误?

时间:2019-07-05 08:10:53

标签: python python-3.x

我正在学习Python(使用Python 3.6.8)中的一流函数的概念,无法弄清楚为什么下面的代码没有显示任何错误。

def outer_fn(msg):
    def inner_fn():
        print(msg)
    return inner_fn


outer_fn("text")

2 个答案:

答案 0 :(得分:3)

因为这是一件非常好的事情。

有时,您因其副作用调用函数(它打印某些内容,将某些内容保存到数据库中,更改某些变量),并且对返回值不感兴趣。 Python不会告诉您对返回值做任何事情,它只是为您调用该函数。

答案 1 :(得分:0)

它没有显示错误,因为您的代码没有任何错误,您需要像这样调用内部函数:

outer = outer_fn("text")
outer() # call inner_fn

完整代码:

def outer_fn(msg): #outer function
    def inner_fn(): #inner function
        print(msg) #able to acces the variable of outer function
    return inner_fn


outer = outer_fn("text")
outer() # call inner_fn

输出:

text