Python 中的 global 标识对变量作用域的影响


Posted in Python onAugust 12, 2019

global 标识用于在函数内部,修改全局变量的值。

我们可以通过以下规则,来判定一个变量到底是在全局作用域还是局部作用域:

  1. 变量定义在全局作用域,那就是全局变量。
  2. 变量在函数中定义,并且加了 global 标识,就是全局变量。
  3. 如果变量在函数中仅做了定义,那么就是局部变量。
  4. 如果变量在函数中仅仅是使用,那么就是全局变量。

下面的示例,有助于理解上述规则:

def cook():
  global dumplings
  dumplings = '10' # 全局变量
  print('cook():' + dumplings)
def cook2():
  dumplings = '22' # 局部变量
  print('cook2():' + dumplings)
def cook3():
  print('cook3():' + dumplings) # 全局变量
dumplings = 3 # 全局变量
cook()
print('global:' + dumplings)
cook3()
cook2()

运行结果:

cook():10  global:10  cook3():10  cook2():22

注意:在函数中,如果在变量定义之前先使用它,就会抛错:

def cook():
  print(dumplings)
  dumplings = 'local'
dumplings = 'global'
cook()

运行结果:

UnboundLocalError: local variable 'dumplings' referenced before assignment

因为在函数中,存在对 dumplings 的定义赋值语句,所以被认为是局部变量。所以在定义之前,先访问这个局部变量就会抛错。

总结

以上所述是小编给大家介绍的Python 中的 global 标识对变量作用域的影响,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
深入理解python try异常处理机制
Jun 01 Python
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
May 30 Python
python爬取个性签名的方法
Jun 17 Python
Python对象与引用的介绍
Jan 24 Python
Python求均值,方差,标准差的实例
Jun 29 Python
解决TensorFlow GPU版出现OOM错误的问题
Feb 03 Python
TensorFlow实现自定义Op方式
Feb 04 Python
Tensorflow全局设置可见GPU编号操作
Jun 30 Python
Python3爬虫关于识别点触点选验证码的实例讲解
Jul 30 Python
利用python Pandas实现批量拆分Excel与合并Excel
May 23 Python
Python中pymysql 模块的使用详解
Aug 12 #Python
python中类的输出或类的实例输出为这种形式的原因
Aug 12 #Python
对Django 中request.get和request.post的区别详解
Aug 12 #Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
Aug 12 #Python
Python简易版停车管理系统
Aug 12 #Python
Python代码实现http/https代理服务器的脚本
Aug 12 #Python
Django admin model 汉化显示文字的实现方法
Aug 12 #Python
You might like
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
PDO::prepare讲解
2019/01/29 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
JavaScript弹出窗口方法汇总
2014/08/12 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
使用console进行性能测试
2015/04/27 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
nodejs基础应用
2017/02/03 NodeJs
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
详解 Python 与文件对象共事的实例
2017/09/11 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
python图像处理入门(一)
2019/04/04 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
好习惯伴我成长演讲稿
2014/05/21 职场文书
法院授权委托书格式
2014/09/28 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
一文搞懂python异常处理、模块与包
2021/06/26 Python
javascript实现计算器功能详解流程
2021/11/01 Javascript