您的位置:首页 > 科技 > IT业 > 石家庄定制网站建设公司_网站开发建设流程_网站设计的流程_2022双11各大电商平台销售数据

石家庄定制网站建设公司_网站开发建设流程_网站设计的流程_2022双11各大电商平台销售数据

2024/12/22 21:54:57 来源:https://blog.csdn.net/qq_63871189/article/details/144311292  浏览:    关键词:石家庄定制网站建设公司_网站开发建设流程_网站设计的流程_2022双11各大电商平台销售数据
石家庄定制网站建设公司_网站开发建设流程_网站设计的流程_2022双11各大电商平台销售数据

嵌套函数的基本概念

  1. 效率和封装:嵌套函数可以帮助组织代码,不仅提高代码的可读性,还能实现封装。外部函数可以定义一个清晰的接口,内部函数可以使用外部函数的上下文,但对外部不可见。

  2. 作用域:嵌套函数可以直接访问外部函数的局部变量。这是因为内部函数可以访问其所在作用域(即外部函数)的变量。

nonlocal 关键字的作用

在 Python 中,缺省情况下,嵌套函数只读外部函数的变量。如果你希望内部函数不仅读取,而且修改外部函数的变量,你需要使用 nonlocal 关键字。

如何使用 nonlocal

在你的代码示例中:

def outer():num = 10  # 外部函数的局部变量def inner():nonlocal num  # 声明 num 是在外部作用域num = 100     # 修改外部函数的 numprint(num)   # 打印修改后的 numinner()          # 调用内部函数print(num)      # 打印修改后的 numouter()

运行流程解析

  1. 定义外部函数 outer

    • 内部定义了一个局部变量 num,并赋值为 10
    • 定义了一个内部函数 inner,该函数用 nonlocal 声明变量 num,这表示该变量来自外部函数 outer 的作用域。
  2. 调用内部函数 inner

    • 当调用 inner() 时,执行内部函数,变量 num 的值被修改为 100。因为用到了 nonlocal,这个修改会影响外部 outer 函数中的 num 变量。
  3. 打印结果

    • inner 函数打印 num 的值为 100
    • 返回到 outer 函数,再次打印 num,此时打印的也是 100,因为 inner 修改了它。

注:在 Python 中,外部函数无法直接调用其内部嵌套函数。内部嵌套函数的作用域是限定在外部函数内部的,其生命周期和可见性仅限于外部函数

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com