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 25 Python
简单易懂的python环境安装教程
Jul 13 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
Python使用pymongo模块操作MongoDB的方法示例
Jul 20 Python
Python3的介绍、安装和命令行的认识(推荐)
Oct 20 Python
Python神奇的内置函数locals的实例讲解
Feb 22 Python
python实现微信防撤回神器
Apr 29 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
pandas的相关系数与协方差实例
Dec 27 Python
python小程序之4名牌手洗牌发牌问题解析
May 15 Python
浅析Python的命名空间与作用域
Nov 25 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入门小知识
2008/03/24 PHP
php图片上传存储源码并且可以预览
2011/08/26 PHP
使用PHP Socket写的POP3类
2013/10/30 PHP
PHP session 会话处理函数
2016/06/06 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2021/03/09 PHP
用jquery ajax获取网站Alexa排名的代码
2009/12/12 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
js查找节点的方法小结
2015/01/13 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
功能强大的jquery.validate表单验证插件
2016/11/07 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
如何使用Python多线程测试并发漏洞
2019/12/18 Python
python实现按关键字筛选日志文件
2019/12/24 Python
浅析Python3 pip换源问题
2020/01/06 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
装修致歉信
2014/01/15 职场文书
任命书怎么写
2014/06/04 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
学校师德师风整改措施
2014/10/27 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
画展观后感
2015/06/17 职场文书
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技
服务器SVN搭建图文安装过程
2022/06/21 Servers