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函数可变参数定义及其参数传递方式
Aug 02 Python
Python调用ctypes使用C函数printf的方法
Aug 23 Python
Python json模块dumps、loads操作示例
Sep 06 Python
在Pandas中给多层索引降级的方法
Nov 16 Python
python requests使用socks5的例子
Jul 25 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
Python能做什么
Jun 02 Python
详解Python设计模式之策略模式
Jun 15 Python
如何在Win10系统使用Python3连接Hive
Oct 15 Python
python 实时调取摄像头的示例代码
Nov 25 Python
PyTorch 实现L2正则化以及Dropout的操作
May 27 Python
Pytorch中使用ImageFolder读取数据集时忽略特定文件
Mar 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 str_replace的替换漏洞
2008/03/15 PHP
php使用session二维数组实例
2014/11/06 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
自制PHP框架之设计模式
2017/05/07 PHP
showModelessDialog()使用详解
2006/09/21 Javascript
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
Prototype 学习 Prototype对象
2009/07/12 Javascript
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
javascript瀑布流布局实现方法详解
2016/02/17 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
Python实现提取文章摘要的方法
2015/04/21 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
python中wx模块的具体使用方法
2020/05/15 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
班级寄语大全
2014/04/10 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
出售房屋协议书范本
2014/10/06 职场文书
春秋淹城导游词
2015/02/11 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
python入门之算法学习
2021/04/22 Python