简单了解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利用elaphe制作二维条形码实现代码
May 25 Python
Python常用算法学习基础教程
Apr 13 Python
Python 查看文件的读写权限方法
Jan 23 Python
Pycharm导入Python包,模块的图文教程
Jun 13 Python
使用python list 查找所有匹配元素的位置实例
Jun 11 Python
通过python实现随机交换礼物程序详解
Jul 10 Python
Django 模型类(models.py)的定义详解
Jul 19 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
Oct 28 Python
Pytorch 数据加载与数据预处理方式
Dec 31 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
PyInstaller的安装和使用的详细步骤
Jun 02 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
May 27 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
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
PHP之header函数详解
2021/03/02 PHP
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
js获取当前日期代码适用于网页头部
2013/06/27 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
基于js实现二级下拉联动
2016/12/17 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
小程序实现自定义导航栏适配完美版
2019/04/02 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
django 常用orm操作详解
2017/09/13 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
python3下实现搜狗AI API的代码示例
2018/04/10 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
四查四看剖析材料
2014/02/14 职场文书
高二学生评语大全
2014/04/25 职场文书
班组长安全工作职责
2014/07/15 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
企业安全生产检查制度
2015/08/06 职场文书
利用python做表格数据处理
2021/04/13 Python
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS