简单了解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中的json与pickle
Jul 19 Python
K-means聚类算法介绍与利用python实现的代码示例
Nov 13 Python
windows下Virtualenvwrapper安装教程
Dec 13 Python
Python numpy实现二维数组和一维数组拼接的方法
Jun 05 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
Jan 23 Python
OpenCV 轮廓检测的实现方法
Jul 03 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
Python 异步协程函数原理及实例详解
Nov 13 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
Django返回HTML文件的实现方法
Sep 17 Python
Python实现对齐打印 format函数的用法
Apr 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函数)
2006/10/09 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
js获取页面description的方法
2015/05/21 Javascript
js电话号码验证方法
2015/09/28 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
js面向对象编程总结
2017/02/16 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
2016/09/18 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
python函数超时自动退出的实操方法
2020/12/28 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
html5读取本地文件示例代码
2014/04/22 HTML / CSS
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
信息技术专业个人自我评价
2013/12/11 职场文书
表决心的诗句大全
2014/03/11 职场文书
2014年党支部学习材料
2014/05/19 职场文书
高中班级口号
2014/06/09 职场文书
单位授权委托书范文
2014/08/02 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
电信营业员岗位职责
2015/04/14 职场文书
环保建议书作文400字
2015/09/14 职场文书
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
MySql数据库触发器使用教程
2022/06/01 MySQL