python global和nonlocal用法解析


Posted in Python onFebruary 03, 2020

这篇文章主要介绍了python global和nonlocal用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

◆global和nonlocal是Python的两个重要变量作用域关键字

1.global用在全局变量,应用场景:
变量定义在函数外部的时候,如果函数里面想改变这个全局变量的值,需要在当前的引用函数里面重新定义一个变量 并用关键字global修饰。

例如:

a=1
def b():
  a+=1
  print(a)
b()

用ide写完这段代码的时候,还没运行就会报红线提示错误,运行之后产生错误,错误内容为:UnboundLocalError: local variable 'a' referenced before assignment。

解决方案:函数中重新声明变量并加修饰符global修改:

#!/usr/bin/env python 
# encoding: utf-8 
a=1
def b():
  global a
  a+=1
  print(a)
b()

2.nonlocal非全局变量,应用场景:

在函数的函数里面使用函数的变量。表达的可能有点混乱,看代码就知道了

#!/usr/bin/env python 
# encoding: utf-8
def b():
  num2=1
  def c():
   nonlocal num2#为了修改非全局变量
   num2+=2
   print(num2)
  return c
b()()

3.综合应用

#!/usr/bin/env python 
# encoding: utf-8 
gcount = 0
 
def global_test():
  global gcount
  s=0
  def g():
    nonlocal s
    s+=2
    print(s)
  return g
  gcount+=1
  print (gcount)
global_test()()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 不同对象比较大小示例探讨
Aug 21 Python
详解Python编程中基本的数学计算使用
Feb 04 Python
Python 绘图和可视化详细介绍
Feb 11 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
Sep 06 Python
详解如何使用Python编写vim插件
Nov 28 Python
Python3使用正则表达式爬取内涵段子示例
Apr 22 Python
Python实现base64编码的图片保存到本地功能示例
Jun 22 Python
pandas实现将dataframe满足某一条件的值选出
Jun 12 Python
Series和DataFrame使用简单入门
Nov 13 Python
python jenkins 打包构建代码的示例代码
Nov 29 Python
python利用opencv实现SIFT特征提取与匹配
Mar 05 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 Python
Tensorflow设置显存自适应,显存比例的操作
Feb 03 #Python
解决Tensorflow占用GPU显存问题
Feb 03 #Python
通过Turtle库在Python中绘制一个鼠年福鼠
Feb 03 #Python
python爬虫模块URL管理器模块用法解析
Feb 03 #Python
Tensorflow实现多GPU并行方式
Feb 03 #Python
python如何通过twisted搭建socket服务
Feb 03 #Python
关于Tensorflow分布式并行策略
Feb 03 #Python
You might like
php 运行效率总结(提示程序速度)
2009/11/26 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
php经典趣味算法实例代码
2020/01/21 PHP
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
JS删除数组元素的函数介绍
2013/03/27 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
Vue插件之滑动验证码
2019/09/21 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
[01:19:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第二局
2016/03/05 DOTA
python多线程抓取天涯帖子内容示例
2014/04/03 Python
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
python语言元素知识点详解
2019/05/15 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
Numpy 多维数据数组的实现
2020/06/18 Python
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
趣味运动会开幕词
2015/01/28 职场文书
技术员岗位职责
2015/02/04 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL
python开发制作好看的时钟效果
2022/05/02 Python