简单了解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通过PIL获取图片主要颜色并和颜色库进行对比的方法
Mar 19 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
python django下载大的csv文件实现方法分析
Jul 19 Python
python切片(获取一个子列表(数组))详解
Aug 09 Python
Django之使用内置函数和celery发邮件的方法示例
Sep 16 Python
python实现批量文件重命名
Oct 31 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
python 用struct模块解决黏包问题
Nov 07 Python
python使用yaml 管理selenium元素的示例
Dec 01 Python
Python爬虫基础之爬虫的分类知识总结
May 13 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
php读取本地文件常用函数(fopen与file_get_contents)
2013/09/09 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
JavaScript拆分字符串时产生空字符的解决方案
2014/09/26 Javascript
js实现文件上传表单域美化特效
2015/11/02 Javascript
javascript合并表格单元格实例代码
2016/01/03 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
Python中取整的几种方法小结
2017/01/06 Python
python3 线性回归验证方法
2019/07/09 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
tensorflow 变长序列存储实例
2020/01/20 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
前台文员岗位职责
2013/12/28 职场文书
自动化职业生涯规划书范文
2014/01/03 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
2014年房地产销售工作总结
2014/12/01 职场文书
师德承诺书
2015/01/20 职场文书
武侯祠导游词
2015/02/04 职场文书