我正在学习Python(使用Python 3.6.8)中的一流函数的概念,无法弄清楚为什么下面的代码没有显示任何错误。
def outer_fn(msg):
def inner_fn():
print(msg)
return inner_fn
outer_fn("text")
答案 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