Python global全局变量函数详解


Posted in Python onSeptember 18, 2018

global语句的作用

在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是全局变量。此时用global语句就可以变成这个任务,也就是说没有用global语句的情况下,是不能修改全局变量的。

在python的函数使用时,经常会碰到参数定义的问题。如果不声明全局变量,会报错

count = 1
def cc():
 count = count+1
cc()
Traceback (most recent call last):
File "<ipython-input-17-f6b58c567c1a>", line 1, in <module>
 cc()
File "<ipython-input-16-aab94f1185b9>", line 2, in cc
 count = count+1
UnboundLocalError: local variable 'count' referenced before assignment

意思是说count为局部变量,在使用它之前没有被赋值。在函数内无法直接使用全局变量。

num = 1
id(num)
Out[31]: 1886744032
def cc():
 num = 2
 print(id(num))
 print(num)
cc()
1886744064
2

可以看出函数里面的num是局部变量,有什么办法能在函数内使用全局变量呢?根据官方文档,可以用global语句:

1.The global statement is a declaration which holds for the entire current code block. It means that the
2.listed identifiers are to be interpreted as globals. It would be impossible to assign to a global variable without global.

意思是说global语句可以声明一个或多个变量为全局变量。该声明仅在当前代码块中有效。除此之外,没办法访问全局变量。所以在函数中添加global声明:

def cc():
 global count
 count = count+1
 print(count)
cc()
2

用global声明多个变量需要用逗号分隔:

num = 0
def cc():
 global count,num
 count = count+1
 num = num+2
 print(count,num)
cc()
3 2
# 可以函数中的global声明能够修改全局变量
num
Out[24]: 2
# 
count
Out[25]: 3
在使用全局变量的场合,也可用类变量代替
class C:
 count = 3
def cc():
 count = C.count+1
 print(count)
cc()
4

如果是想在函数中调用全局变量,这需要global声明。之后调用全局变量,全局变量的值也随之可能发生改变,如果是count = count+1这种再定义的时候,否则全局变量只是被调用。也可以通过class来调用变量的方法达到全局变量的效果

global的作用就相当于传递参数,在函数外部声明的变量,如果在函数内想要使用,就用global来声明该变量,这样就相当于把该变量传递进来了,就可以引用该变量了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python实现中文数字转换为阿拉伯数字的方法示例
May 26 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
Jul 24 Python
浅谈Django学习migrate和makemigrations的差别
Jan 18 Python
Python中单例模式总结
Feb 20 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
python中的逆序遍历实例
Dec 25 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 Python
Django之腾讯云短信的实现
Jun 12 Python
Python项目跨域问题解决方案
Jun 22 Python
python实现学生成绩测评系统
Jun 22 Python
Python  word实现读取及导出代码解析
Jul 09 Python
利用Python实时获取steam特惠游戏数据
Jun 25 Python
Win10下python 2.7.13 安装配置方法图文教程
Sep 18 #Python
Python sorted函数详解(高级篇)
Sep 18 #Python
python 2.7.13 安装配置方法图文教程
Sep 18 #Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 #Python
python 3.6.2 安装配置方法图文教程
Sep 18 #Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 #Python
python 3.6.4 安装配置方法图文教程
Sep 18 #Python
You might like
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
自己写的php curl库实现整站克隆功能
2015/02/12 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
Zend Framework教程之Application和Bootstrap用法详解
2016/03/10 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
PHP反射API示例分享
2016/10/08 PHP
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
JS实现京东商品分类侧边栏
2020/12/11 Javascript
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
python处理excel绘制雷达图
2019/10/18 Python
Python 切分数组实例解析
2019/11/07 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
Python控制台实现交互式环境执行
2020/06/09 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
大学生个人总结的自我评价
2013/10/05 职场文书
办公室文员工作职责
2014/01/31 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
趣味运动会策划方案
2014/06/02 职场文书
司机个人年终总结
2015/03/03 职场文书
初中毕业生感言
2015/07/31 职场文书
python3操作redis实现List列表实例
2021/08/04 Python
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL