python nonlocal关键字「建议收藏」

python nonlocal关键字「建议收藏」pythonnonlocal关键字non-local非局部变量如果两个嵌套函数,一个函数A里面又包含了一个函数B,那么对于B中的名称来说A中的作用域就为nonlocal作用域:enclosing作用域—外层非全局作用域如果要在内层函数中修改外层变量,则需要用到nonlocal关键字defouter():num=10print(num)definner():nonlocalnum#内层函数未定义此变量n

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

python nonlocal 关键字

non – local 非局部变量
如果两个嵌套函数,一个函数A里面又包含了一个函数B,那么对于B中的名称来说A中的作用域就为nonlocal
作用域:enclosing作用域 —外层非全局作用域
如果要在内层函数中修改外层变量,则需要用到 nonlocal 关键字



def outer():
    num = 10
    print(num)
    def inner():
        nonlocal num
        # 内层函数未定义此变量num 通过关键字nonlocal 直接使用此变量
        print(num)
        num = 100
        print(num)

    inner()
    print(num)
    # 内层函数对变量的改变 会作用到外层


outer()


执行结果
在这里插入图片描述

如果未声明直接使用会报错
在这里插入图片描述

代码来源—-菜鸟教程
https://www.runoob.com/python3/python3-namespace-scope.html

ps:修改全局变量,不是必须先使用global进行声明才行

在一个函数中对全局变量进行修改的时候,倒是是否需要使用global进行说明要看是否对全局变量的执行执行进行了修改
如果修改了执行,让全局变量执行了一个新的地方,那么必须使用global,如果,仅仅是修改了指向的空间中的数据,此时不用必须使用global

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197653.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IDEA快捷键设置-设置成和Eclipse一样「建议收藏」

    IDEA快捷键设置-设置成和Eclipse一样「建议收藏」用惯了eclipse的同学可能会对IDEA的快捷键不习惯,所以这里打包了一份eclipse中快捷键的设置。直接导入IDEA就可以使用。链接:https://pan.baidu.com/s/1FmXOQeqy6RxfD05mKdq3dQ提取码:c0px…

    2022年6月20日
    88
  • 迈克菲杀毒软件创始人(John McAfee)被发现在监狱死亡「建议收藏」

    迈克菲杀毒软件创始人(John McAfee)被发现在监狱死亡「建议收藏」律师近日告诉路透社,西班牙高等法院批准将出生于英国的美国科技企业家JohnMcAfee引渡到美国后,周三他在巴塞罗那监狱自杀身亡。McAfee的律师JavierVillalba表示,今年75岁的迈克菲杀毒软件创始人约翰·迈克菲日前被发现死于位于巴塞罗那一家监狱的牢房中。而死亡时间刚好是西班牙法院判决他被引渡回美国几个小时后。这位反病毒软件先驱在九个月的监禁中因绝望而上吊。75岁的McAfee在上个月的法庭听证会上表示,鉴于他这个年纪,如果在美国被定罪,他将在监狱中度过余生。他说:“我希望..

    2022年9月23日
    0
  • 显卡矿机装linux教程,8张GTX1080Ti显卡加副电源矿机组装教程

    显卡矿机装linux教程,8张GTX1080Ti显卡加副电源矿机组装教程在经历一波短暂的回调后,最近比特币又持续升温,一度突破19000元大关,目前价格基本在18000-19000之间浮动,挖矿市场可谓是一片火爆!近日大风哥闲来无事,自己也倒腾了一台矿机来玩玩,特来大家分享一下安装教程及心得。说到挖矿,显卡当然是首当其冲了,而现阶段市售各型号的显卡也因虚拟币市场火热而处于货源紧缺的状态,可谓是一卡难求!赶巧笔者手上有几片GTX1080Ti,矿机的显卡就选用它们了!Em…

    2022年9月30日
    0
  • 数据库设计工具MySQLWorkBench[通俗易懂]

    数据库设计工具MySQLWorkBench[通俗易懂]  该工具为MySQL官方提供地址:http://dev.mysql.com/downloads/workbench/小伙伴们注意按自己的操作系统选择下载版本。·       注意事项:安装后将环境语言配置成简体中文,否则中文乱码工作步骤新建模型后,会进入此页面。 1./2.切换数据库表设计与ER图。3. 创建/管理ER图4. 创建/管理表结构1….

    2022年7月11日
    16
  • Golang开发环境搭建(Windows)[通俗易懂]

    Golang开发环境搭建(Windows)[通俗易懂]golang下载地址:Downloads-TheGoProgrammingLanguage1)下载安装包安装2)环境变量配置:path:C:\Go\bin可执行文件路径加到环境变量path中 GOROOT:go的安装路径。C:\Go,官方包路径根据这个设置自动匹配 GOPATH:goinstall你的子包。有利于gobuild的时间配置集成开发环境1)IntellIJidea:安装go插件搜索不到go,配置管…

    2022年10月7日
    0
  • centos7.6开放端口命令_查看端口有没有开放

    centos7.6开放端口命令_查看端口有没有开放概要最近在docker下搭建MySQL和Redis环境,远程linux主机内部网络都走通了,但是就是外网无法连接远程服务器的MySQL和Redis。经过一番查找和学习,终于找到了问题,不仅远程服务器上docker要做好内部和外部端口的映射,关键还要对对外开放的端口添加到防火墙中。内容介绍的逻辑是:本篇文章先记录Centos7下查看防火墙状态和网络状态命令;下一篇将介绍通过docker…

    2022年9月1日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号