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文件操作整理汇总
Oct 21 Python
python杀死一个线程的方法
Sep 06 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
python-str,list,set间的转换实例
Jun 27 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
Python实现的爬取百度贴吧图片功能完整示例
May 10 Python
python3获取当前目录的实现方法
Jul 29 Python
django执行数据库查询之后实现返回的结果集转json
Mar 31 Python
Python3爬虫关于代理池的维护详解
Jul 30 Python
Python txt文件常用读写操作代码实例
Aug 03 Python
Pycharm同步远程服务器调试的方法步骤
Nov 04 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
超级简单的发送邮件程序
2006/10/09 PHP
PHP+DBM的同学录程序(5)
2006/10/09 PHP
php输出xml格式字符串(用的这个)
2012/07/12 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
js操作二进制数据方法
2018/03/03 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
Python实现简单字典树的方法
2016/04/29 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
keras slice layer 层实现方式
2020/06/11 Python
Python的logging模块基本用法
2020/12/24 Python
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
测试时代收集的软件测试面试题
2013/09/25 面试题
J2EE相关知识面试题
2013/08/26 面试题
环境工程大学生自荐信
2013/10/21 职场文书
实习教师自我鉴定
2013/12/12 职场文书
幼儿园运动会加油词
2014/02/14 职场文书
付款委托书范本
2014/04/04 职场文书
艺术教育实施方案
2014/05/03 职场文书
淘宝店策划方案
2014/06/07 职场文书
天地会口号
2014/06/17 职场文书
化学教育专业自荐信
2014/07/04 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS