简单了解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实现数通设备tftp备份配置文件示例
Apr 02 Python
在Django的视图(View)外使用Session的方法
Jul 23 Python
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
儿童学习python的一些小技巧
May 27 Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 Python
对python读取CT医学图像的实例详解
Jan 24 Python
python3+selenium自动化测试框架详解
Mar 17 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
Apr 14 Python
python新手学习使用库
Jun 11 Python
深入了解Python装饰器的高级用法
Aug 13 Python
python 实现波浪滤镜特效
Dec 02 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
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
基于php实现的验证码小程序
2016/12/13 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
Python Series从0开始索引的方法
2018/11/06 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
莫斯科珠宝厂官方网站:Miuz
2020/09/19 全球购物
值传递还是引用传递
2015/02/08 面试题
编辑个人求职信范文
2013/09/21 职场文书
企业安全生产承诺书
2014/05/22 职场文书
毕业生工作求职信
2014/06/30 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
教师工作总结范文2014
2014/11/10 职场文书
水电施工员岗位职责
2015/04/11 职场文书
安全守法证明
2015/06/23 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android