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爬取十篇新闻统计TF-IDF
Jan 03 Python
python编写微信远程控制电脑的程序
Jan 05 Python
利用python的socket发送http(s)请求方法示例
May 07 Python
Python FTP两个文件夹间的同步实例代码
May 25 Python
python一行sql太长折成多行并且有多个参数的方法
Jul 19 Python
深入浅析python 协程与go协程的区别
May 09 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
python实现QQ批量登录功能
Jun 19 Python
python自动下载图片的方法示例
Mar 25 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
python时间time模块处理大全
Oct 25 Python
python opencv角点检测连线功能的实现代码
Nov 24 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生成数组再传给js的方法
2014/08/07 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
javascript 面向对象编程基础:封装
2009/08/21 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
jQuery extend 的简单实例
2013/09/18 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
JavaScript实现的经典文件树菜单效果
2015/09/08 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[01:59]游戏“zheng”当时试玩会
2019/08/21 DOTA
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
python简单实例训练(21~30)
2017/11/15 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
python 实现汉诺塔游戏
2020/11/28 Python
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
善意的谎言事例
2014/02/15 职场文书
公司节能减排方案
2014/05/16 职场文书
最新离婚协议书范本
2014/08/19 职场文书
会计工作态度自我评价
2015/03/06 职场文书
暖春观后感
2015/06/08 职场文书
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫
处理canvas绘制图片模糊问题
2022/05/11 Javascript