简单了解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实现windows下模拟按键和鼠标点击的方法
Mar 13 Python
Anaconda2 5.2.0安装使用图文教程
Sep 19 Python
python/sympy求解矩阵方程的方法
Nov 08 Python
python reverse反转部分数组的实例
Dec 13 Python
python3安装speech语音模块的方法
Dec 24 Python
Python-ElasticSearch搜索查询的讲解
Feb 25 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
浅谈python处理json和redis hash的坑
Jul 16 Python
python 监控logcat关键字功能
Sep 04 Python
Python getsizeof()和getsize()区分详解
Nov 20 Python
python 高阶函数简单介绍
Feb 19 Python
python实现简单石头剪刀布游戏
Oct 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
《PHP编程最快明白》第七讲:php图片验证码与缩略图
2010/11/01 PHP
PHP实现基于文本的摩斯电码生成器
2016/01/11 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
php中yii框架实例用法
2020/12/22 PHP
jQuery的初始化与对象构建之浅析
2011/04/12 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
Python中获取网页状态码的两个方法
2014/11/03 Python
Python运算符重载用法实例分析
2015/06/01 Python
使用python实现接口的方法
2017/07/07 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
中科方德软件测试面试题
2016/04/21 面试题
中科软笔试题和面试题
2014/10/07 面试题
简历的个人自我评价范文
2014/01/03 职场文书
最新优秀教师个人先进事迹材料
2014/05/06 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
学习优秀党务工作者先进事迹材料思想报告
2014/09/17 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
2014年班务工作总结
2014/12/02 职场文书
《实心球》教学反思
2016/02/23 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
Java 数组内置函数toArray详解
2021/06/28 Java/Android
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers