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



我正在学习python中一类功能的概念(使用python 3.6.8(,无法弄清楚为什么下面的代码不显示任何错误。

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

outer_fn("text")

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

有时您调用其副作用的函数(它打印某些东西,将某些东西保存到数据库,更改一些变量(,并且对返回值不感兴趣。Python不告诉您对返回值进行任何操作,它只是为您调用功能。

它没有显示错误,因为您的代码没有任何错误,您需要称呼自己的内部函数,例如:

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

最新更新