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 re模块介绍
Nov 30 Python
Python生成数字图片代码分享
Oct 31 Python
Python实现快速计算词频功能示例
Jun 25 Python
小白入门篇使用Python搭建点击率预估模型
Oct 12 Python
Python实现统计英文文章词频的方法分析
Jan 28 Python
python opencv实现图像边缘检测
Apr 29 Python
用python做游戏的细节详解
Jun 25 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
Python3 利用face_recognition实现人脸识别的方法
Mar 13 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
Dec 28 Python
python 开心网和豆瓣日记爬取的小爬虫
May 29 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生成图形(Libchart)实例
2013/11/06 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
联想德国官网:Lenovo Germany
2018/07/04 全球购物
自我鉴定的范文
2013/10/03 职场文书
物理教育专业毕业生推荐信
2013/11/03 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
分居协议书范本
2014/11/03 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS