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实现代码行数统计示例分享
Feb 10 Python
python自动化测试之从命令行运行测试用例with verbosity
Sep 28 Python
Python中type的构造函数参数含义说明
Jun 21 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
Python 中Django验证码功能的实现代码
Jun 20 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
Python datetime 如何处理时区信息
Sep 02 Python
浅谈Selenium 控制浏览器的常用方法
Dec 04 Python
Pytorch1.5.1版本安装的方法步骤
Dec 31 Python
python程序实现BTC(比特币)挖矿的完整代码
Jan 20 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的ASP防火墙
2006/10/09 PHP
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
IIS下PHP的三种配置方式对比
2014/11/20 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
Python使用爬虫爬取静态网页图片的方法详解
2018/06/05 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
django项目中新增app的2种实现方法
2020/04/01 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
2020/07/15 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
国际商务专业学生个人的自我评价
2013/09/28 职场文书
消防器材管理制度
2014/01/28 职场文书
电大会计学自我鉴定
2014/02/06 职场文书
GMP办公室主任岗位职责
2014/03/14 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
个人先进事迹总结
2015/02/26 职场文书
初中政治教学反思
2016/02/23 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android