• 技术文章 >常见问题 >Python常见问题

    python函数嵌套时怎么调用

    silencementsilencement2019-11-08 09:20:21原创2680

    python允许创建嵌套函数。也就是说我们可以在函数里面定义函数,而且现有的作用域和变量生存周期依旧不变。

    例子:

    #encoding=utf-8
    
    def outer():
        name="python"
    
        def inner():#outer函数内部定义的函数
            print name
        return inner()#返回该内部函数
    
    outer()

    Python学习网- 专业的python自学、交流公益平台!

    理解:

    在inner函数中,python解析器需要找一个叫name的本地变量,查找失败后会继续在上层的作用域里面寻找,这个上层作用域定义在outer函数里,python函数可以访问封闭作用域。

    对于outer函数中最后一句,返回inner函数调用的结果,需要知道非常重要一点就是,inner也仅仅是一个遵循python变量解析规则的变量名,python解释器会优先在outer的作用域里面对变量名inner查找匹配的变量。

    把恰好是函数标识符的变量inner作为返回值返回回来,每次函数outer被调用的时候,函数inner都会被重新定义,如果它不被当做变量返回的话,每次执行过后它将不复存在。

    在python里,函数就是对象,它也只是一些普通的值而已。也就是说你可以把函数像参数一样传递给其他的函数或者说从函数了里面返回函数。

    专题推荐:嵌套函数
    上一篇:python3与2怎么共存 下一篇:python连接oracle乱码怎么办

    相关文章推荐

    • python是函数式语言吗• python如何安装第三方函数库• python中map函数怎么显示结果

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网