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 40行代码实现人脸识别功能
Apr 02 Python
python 中split 和 strip的实例详解
Jul 12 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
用python处理MS Word的实例讲解
May 08 Python
解决pandas 作图无法显示中文的问题
May 24 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
flask 实现上传图片并缩放作为头像的例子
Jan 09 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 Python
解决Python图形界面中设置尺寸的问题
Mar 05 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
django API 中接口的互相调用实例
Apr 01 Python
Python读取文件夹下的所有文件实例代码
Apr 02 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 页面编码声明方法详解(header或meta)
2010/03/12 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
yii2安装详细流程
2018/05/23 PHP
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
详解Nodejs基于mongoose模块的增删改查的操作
2016/12/21 NodeJs
详解Javascript中DOM的范围
2017/02/13 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
简单的JS控制button颜色随点击更改的实现方法
2017/04/17 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
python kmeans聚类简单介绍和实现代码
2018/02/23 Python
pycham查看程序执行的时间方法
2018/11/29 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
2020/01/03 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
高分子材料与工程专业推荐信
2013/12/01 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
项目工作说明书
2014/07/29 职场文书
科学发展观标语
2014/10/08 职场文书
党员三严三实心得体会
2014/10/13 职场文书
房产销售员2015年终工作总结
2015/10/22 职场文书
python标准库ElementTree处理xml
2022/05/20 Python