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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • beescms网站渗透测试和修复意见「建议收藏」

    beescms网站渗透测试和修复意见「建议收藏」beescms网站渗透测试目录1.环境搭建2.渗透前信息收集3.开始渗透Beescms实验环境搭建1、官方下载Beescmsv4.0,下载地址:http://beescms.com/cxxz.html2、解压压缩文件,然后把文件放到phpstudy的网站根目录3、浏览器访问http://127.0.0.1/beescms/install,开始安装4、一直下一步,出现如下界面,输入数据库账户密码5、成功安装6、修改mysql.ini文件,在mysqld下添加条目:secu

    2022年6月21日
  • visual c++2010密钥

    visual c++2010密钥6VPJ7-H3CXH-HBTPT-X4T74-3YVY7

    2022年5月18日
  • Oracle下查看索引的语句

    Oracle下查看索引的语句1.查询一张表里面索引select*fromuser_indexeswheretable_name=upper(‘表名’);2.查询被索引字段select*fromuser_ind_columnswhereindex_name=(‘索引名称’);3.给某一字段创建索引createindex索引名on表名(字段);…

    2022年5月10日
  • 数字逻辑中的与或非异或的运算规律_执行逻辑与或非运算

    数字逻辑中的与或非异或的运算规律_执行逻辑与或非运算计算机中的逻辑运算又被称作为“布尔运算”,分别为:逻辑**与**运算、逻辑**或**运算,逻辑**非**运算,“逻辑**异或**运算。此外在门电路中还有:**同或**运算、**与非**运算、**或非**运算。共七种。……

    2022年10月12日
  • 类模板友元函数的声明(友元函数可以在类内定义吗)

    2009-08-09摘自《SunStudio12:C++用户指南》第6.7.3节 模板在使用前必须先声明。一个友元声明构成了模板的使用,而非模板的声明。(Afrienddeclarationconstitutesauseofthetemplate,notadeclarationofthetemplate.)所以实际的模板声明必须在友元声明之前

    2022年4月10日
  • c# listview排序功能_c#入门

    c# listview排序功能_c#入门ListViewColumnSorter.csusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Collections;usingSystem.Windows.Forms;namespaceMicroblue{   classListViewColumnSorter:IComparer   {       /**/       ///       

    2022年10月3日

发表回复

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

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