简单了解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网络编程学习笔记(三):socket网络服务器
Jun 09 Python
python输出当前目录下index.html文件路径的方法
Apr 28 Python
谈谈Python进行验证码识别的一些想法
Jan 25 Python
详解python调度框架APScheduler使用
Mar 28 Python
Python实现线程状态监测简单示例
Mar 28 Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 Python
python递归全排列实现方法
Aug 18 Python
pycharm中显示CSS提示的知识点总结
Jul 29 Python
pandas如何处理缺失值
Jul 31 Python
通过python实现windows桌面截图代码实例
Jan 17 Python
浅析matlab中imadjust函数
Feb 27 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
Apr 10 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
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
PHP 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
php数据库配置文件一般做法分享
2012/07/07 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
一些不错的js函数ajax
2008/08/20 Javascript
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
javascript jscroll模拟html元素滚动条
2012/12/18 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
AngularJS中$http使用的简单介绍
2017/03/17 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
2017/07/20 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
基于Vue实现电商SKU组合算法问题
2019/05/29 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
npm qs模块使用详解
2020/02/07 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
调试Python程序代码的几种方法总结
2015/04/28 Python
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
python如何实现异步调用函数执行
2019/07/08 Python
python 搜索大文件的实例代码
2019/07/08 Python
Python使用Pandas读写Excel实例解析
2019/11/19 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
公司活动总结怎么写
2014/06/25 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
高老头读书笔记
2015/06/30 职场文书
六一活动主持词
2015/06/30 职场文书
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS