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使用any判断一个对象是否为空的方法
Nov 19 Python
开源Web应用框架Django图文教程
Mar 09 Python
离线安装Pyecharts的步骤以及依赖包流程
Apr 23 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
Sep 26 Python
Python IDLE入门简介
Dec 08 Python
基于数据归一化以及Python实现方式
Jul 11 Python
python3 flask实现文件上传功能
Mar 20 Python
Python中的取模运算方法
Nov 10 Python
python 反编译exe文件为py文件的实例代码
Jun 27 Python
django多对多表的创建,级联删除及手动创建第三张表
Jul 25 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 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通过COM使用ADODB的简单例子
2006/12/31 PHP
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
firefox下input type="file"的size是多大
2011/10/24 Javascript
用jquery方法操作radio使其默认选项是否
2013/09/10 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
vue.js中created方法作用
2018/03/30 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
AI人工智能 Python实现人机对话
2017/11/13 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
幼儿园园长自我鉴定
2013/10/22 职场文书
刊首寄语大全
2014/04/11 职场文书
高中生学习计划书
2014/09/15 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
Python中Selenium对Cookie的操作方法
2021/07/09 Python
详解JavaScript中Arguments对象用途
2021/08/30 Javascript
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers