简单了解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检测QQ在线状态的方法
May 09 Python
python判断windows系统是32位还是64位的方法
May 11 Python
使用Python中的tkinter模块作图的方法
Feb 07 Python
Python实现的随机森林算法与简单总结
Jan 30 Python
python实现石头剪刀布程序
Jan 20 Python
pandas修改DataFrame列名的实现方法
Feb 22 Python
django 通过URL访问上传的文件方法
Jul 28 Python
Django之模板层的实现代码
Sep 09 Python
详解Django3中直接添加Websockets方式
Feb 12 Python
使用python接受tgam的脑波数据实例
Apr 09 Python
Pycharm 跳转回之前所在页面的操作
Feb 05 Python
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
Apr 24 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
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
javascript实用方法总结
2015/02/06 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
Python实现包含min函数的栈
2016/04/29 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
毕业生造价工程师求职信
2013/10/17 职场文书
精彩的英文自荐信
2014/01/30 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
学校运动会报道稿
2014/09/23 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
统计员岗位职责范本
2015/04/14 职场文书
学校节水倡议书
2015/04/29 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python
Python 如何将integer转化为罗马数(3999以内)
2021/06/05 Python
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js