简单了解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设计模式中单例模式的实现及在Tornado中的应用
Mar 02 Python
python查询mysql,返回json的实例
Mar 26 Python
Python基于递归实现电话号码映射功能示例
Apr 13 Python
Python登录注册验证功能实现
Jun 18 Python
浅析python继承与多重继承
Sep 13 Python
numpy 计算两个数组重复程度的方法
Nov 07 Python
Windows下Python3.6安装第三方模块的方法
Nov 22 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
关于numpy.where()函数 返回值的解释
Dec 06 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
基于python图像处理API的使用示例
Apr 03 Python
Python 如何实现访问者模式
Jul 28 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实现ping
2006/10/09 PHP
我的论坛源代码(四)
2006/10/09 PHP
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
js和jquery设置disabled属性为true使按钮失效
2014/08/07 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
CSS3实现文字描边的2种方法(小结)
2020/02/14 HTML / CSS
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
视光学专业毕业生推荐信
2013/10/28 职场文书
公务员总结性个人自我评价
2013/12/05 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
促销活动总结报告
2014/04/26 职场文书
设计大赛策划方案
2014/06/13 职场文书
群教班子对照检查材料
2014/08/26 职场文书
美容院合作经营协议书
2014/10/10 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书