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之深入变量和引用对象
Sep 24 Python
python解决网站的反爬虫策略总结
Oct 26 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
利用python在excel里面直接使用sql函数的方法
Feb 08 Python
Python八皇后问题解答过程详解
Jul 29 Python
简单了解Python读取大文件代码实例
Dec 18 Python
pytorch 使用加载训练好的模型做inference
Feb 20 Python
python+opencv实现移动侦测(帧差法)
Mar 20 Python
基于pandas向csv添加新的行和列
May 25 Python
python中rc1什么意思
Jun 19 Python
python中的时区问题
Jan 14 Python
关于Python OS模块常用文件/目录函数详解
Jul 01 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
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
jQuery实用基础超详细介绍
2013/04/11 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
2016/04/26 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
通过示例彻底搞懂js闭包
2017/08/10 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
2017/08/23 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
[02:31]2014DOTA2国际邀请赛2009专访:干爹表现出乎意料 看好DK杀回决赛
2014/07/20 DOTA
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
keras中的卷积层&池化层的用法
2020/05/22 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
经济学人订阅:The Economist
2018/07/19 全球购物
毕业生自荐信的主要内容
2013/10/29 职场文书
父亲生日宴会答谢词
2014/01/10 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
大型演出策划方案
2014/05/28 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
历史博物馆观后感
2015/06/05 职场文书
2016年植树节红领巾广播稿
2015/12/17 职场文书
pycharm代码删除恢复的方法
2021/06/26 Python
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js