在另一个函数内部调用一个函数(嵌套)

时间:2018-04-09 17:36:27

标签: python python-3.x closures nested-function

我有一个Python函数

def outer_function():
    def inner_funtion():
        print ('inner message')
    print('outer message')
    sys.exit()

如何调用内部函数?我对检查库很新,如果有资格作为闭包,我会关闭。

3 个答案:

答案 0 :(得分:0)

您可以将其称为任何其他功能inner_funtion(),但它只能在outer_function范围内访问。

答案 1 :(得分:0)

您可以在定义inner_function()的范围内的任何位置使用inner_function()outer_function()定义inner_function()后的任何位置。

答案 2 :(得分:0)

我发现自己使用这种技术了不少。 正如其中一位评论者写的那样,你只需要称之为:

def outer_function():
    def inner_funtion():
        print ('inner message')
    print('outer message')
    inner_function()
    sys.exit()

>>> outer_function()
outer message
inner message

这仅适用于outer_function()的范围,如果您尝试在inner_function()内的任何地方调用outer_function(),则会返回错误。

使用嵌套函数是一种很好的技术来清理其他笨重的顶级函数。

关于你的第二个问题,the top answer here比我做得更好。