简单了解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实现一次创建多级目录的方法
May 15 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
May 31 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
Feb 07 Python
python如何去除字符串中不想要的字符
Jul 05 Python
Python3实现的简单验证码识别功能示例
May 02 Python
python判断自身是否正在运行的方法
Aug 08 Python
python对Excel按条件进行内容补充(推荐)
Nov 24 Python
如何通过python实现全排列
Feb 11 Python
python 画条形图(柱状图)实例
Apr 24 Python
pycharm 添加解释器的方法步骤
Aug 31 Python
如何理解python接口自动化之logging日志模块
Jun 15 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
php插入排序法实现数组排序实例
2015/02/16 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
2010/07/24 Javascript
JavaScript中URL编码函数代码
2011/01/11 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
js多功能分页组件layPage使用方法详解
2016/05/19 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
js实现弹窗猜数字游戏
2020/11/26 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
Python批量修改文本文件内容的方法
2016/04/29 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
将python图片转为二进制文本的实例
2019/01/24 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
Python 中判断列表是否为空的方法
2019/11/24 Python
python em算法的实现
2020/10/03 Python
Django缓存Cache使用详解
2020/11/30 Python
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
客服主管岗位职责
2013/12/13 职场文书
对教师的评语
2014/04/28 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
2015年学校医务室工作总结
2015/07/20 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript
一文带你探究MySQL中的NULL
2021/11/11 MySQL
Python 中面向接口编程
2022/05/20 Python