简单了解python关键字global nonlocal区别


Posted in Python onSeptember 21, 2020

第一,两者的功能不同。global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,nonlocal位置会发生错误(最上层的函数使用nonlocal修饰变量必定会报错)。

第二,两者使用的范围不同。global关键字可以用在任何地方,包括最上层函数中和嵌套函数中,即使之前未定义该变量,global修饰后也可以直接使用,而nonlocal关键字只能用于嵌套函数中,并且外层函数中定义了相应的局部变量,否则会发生错误(见第一)。

正常的

a = 1
def func():
  a = 10
  print(a)
func()
print(a)

运行结果:

10
1

使用global

a = 1
def func():
  global a
  a = 10
  print(a)
func()
print(a)

运行结果:

10
10

使用nonlocal

a = 1
def func():
  nonlocal a
  a = 10
  print(a)
func()
print(a)

运行结果:

10
0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python编程中包的概念与管理
Oct 16 Python
wxpython中自定义事件的实现与使用方法分析
Jul 21 Python
Python简单生成8位随机密码的方法
May 24 Python
详解python中executemany和序列的使用方法
Aug 12 Python
python中通过预先编译正则表达式提高效率
Sep 25 Python
Python去除、替换字符串空格的处理方法
Apr 01 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
Python中的几种矩阵乘法(小结)
Jul 10 Python
Tensorflow训练MNIST手写数字识别模型
Feb 13 Python
关于Python turtle库使用时坐标的确定方法
Mar 19 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
Jun 02 Python
Django路由层URLconf作用及原理解析
Sep 24 Python
PIP和conda 更换国内安装源的方法步骤
Sep 21 #Python
python 字符串格式化的示例
Sep 21 #Python
基于python判断字符串括号是否闭合{}[]()
Sep 21 #Python
属性与 @property 方法让你的python更高效
Sep 21 #Python
Python如何在bool函数中取值
Sep 21 #Python
python 密码学示例——凯撒密码的实现
Sep 21 #Python
python 密码学示例——理解哈希(Hash)算法
Sep 21 #Python
You might like
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
JS+CSS实现简易的滑动门效果代码
2015/09/24 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
python 创建弹出式菜单的实现代码
2017/07/11 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
艺术爱好者的自我评价分享
2013/10/08 职场文书
总裁岗位职责
2013/12/04 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
学校师德师风整改措施
2014/10/27 职场文书
2015年学校德育工作总结
2015/04/22 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
永不妥协观后感
2015/06/10 职场文书
幼儿园2016圣诞节活动总结
2016/03/31 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android