python函数 global_Python global全局变量函数详解

global语句的作用

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

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

count = 1

def cc():

count = count+1

cc()

Traceback (most recent call last):

File "", line 1, in

cc()

File "", 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 global全局变量函数详解

本文地址: http://www.cppcns.com/jiaoben/python/239980.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器php只显示文本,服务器上的php echos文件是文本而不是二进制文件

我编写了一个PHP页面,它读取一个文件,并在添加了一些头文件后对其进行回显:header(Content-disposition: filename" . $fname . ");header(Pragma: no-cache);header(Expires: 0);header(Cache-Control: must-revalidate, post-check0, pre-check0);header(Pragma: p…

vc 6.0 显示文件全路径_配送路径规划思考(十二)

前面十一集的链接配送路径规划思考(十一)配送路径规划思考(十)配送路径规划思考(九)配送路径规划思考(八)配送路径规划思考(七)配送路径规划思考(六)配送路径规划思考(五)配送路径规划思考(四)配送路径规划思考(三)配送路径规划思考(二)配送最短路径思考(一)思考(十一)分享了政…

怎么暂时关闭网站php,WordPress怎么临时关闭网站进行维护

有时可能会因为各种原因导致我们的网站出现访问错误,此时我们就需要临时关闭站点进行维护,那么我们该如何临时关闭站点进行维护呢?下面让我们来看一下如何临时关闭我们的站点吧。1、.maintenance法在WordPress根目录下新建一个名为.maintenan…

DataList控件分页

实现了对DataList的分页 HTML控件的值需要转换web应用程序就可以取到了 1 /**//// <summary> 2 /// 当前页数 3 /// </summary> 4 int CurrentPage; 5 /**//// <summary> 6 /// 每页条数 7 /// </summa…

现代php 阅读笔记,PHP 手册阅读笔记 - 语言参考篇

最近计划把 PHP手册&#xff0c;认真的先过一遍。记录一些以前不知道&#xff0c;不明确的知识。语言参考 > 类型【新认知】强制转换类型用 settype( mixed $var, string $type )。判断变量的类型用is_type函数。例如&#xff1a;if (is_int($an_int)) {$an_int 4;}if (is_…

mongodb连接失败_mongodb 数据库及数据分页

本文转载于 SegmentFault 社区作者&#xff1a;小小蚊子在做自己的一个小项目时&#xff0c;新学习了 mongodb非关系型数据库&#xff0c;使用了 mongoose封装好的查询方法&#xff0c;包括数据库分页用到的limit和 skip 方法&#xff0c;这里记录下。一mongodb 数据库连接参照…

python 去除空格和换行,删除空格和换行符-BeautifulSoup Python

使用Beautifulsoup&#xff0c;我正在抓取以下Web源&#xff1a;Manchester Citys Fabian Delph limped off in the first minute of England Euro 2016 qualifier against Switzerland with a suspected hamstring injury. The 25-year-old midfielder, who signed for City f…

Windows MobileCE 开发书籍大全

1、《Microsoft Windows CE 程序设计》 北京大学出版社[美]Doudlas Boling 著该书可以与经典著作《Microsoft Windows 程序设计》相媲美&#xff0c;就象要想在Window平台上开发&#xff0c;必看 《Microsoft Windows 程序设计》一样&#xff0c;如果你想在Windows CE平台上开发…

python自动答题助手_GitHub - SmileSmith/autoAnswer: 客户端答题工具,集成3个答题助手,包含AI自动答题,手动答题,adb控制多台手机等...

autoAnswer和简单搜索、汪仔助手、UC答题助手一起答题。支持AI自动答题&#xff0c;支持个性化题。注&#xff1a;近期各个答题助手都升级了安全策略&#xff0c;如有问题请随时反馈 ~ ~**AI自动答题的详细流程说明请打开(见图)AI自动答题的结果预览(见图)答题界面见预览&#…

php ajax json post请求参数传递,javascript - ajax post 有个请求参数要用json 但请问js怎么转json的?...

$.ajax({url: linkAndBindUrl,method: post,data: {key: "web",toKen: toKen,memberId: memberId,json:, //[{"id":1,"appellation":"爸爸"},{"id":2,"appellation":"爷爷"}],beMemberId: beMemberId},…

创建数据类的原则

转载于:https://www.cnblogs.com/ghostbox/archive/2009/08/03/2251083.html

mysql 关联查询_Mysql查询优化器,再也不会因为该什么时候建立索引发愁了

优化器的作用&#xff1a;我们知道&#xff0c;一条SQL语句&#xff0c;可以有很多执行方式&#xff0c;最后都返回相同的结果&#xff0c;而优化器的作用就是找到最好的执行计划。一、RBO-基于规则的优化器(rule)系统内置的一套硬编码规则&#xff0c;根据规则生成执行计划&am…

购物车的收货地址js php,Javascript实现购物车功能的详细代码

我们肯定都很熟悉商品购物车这一功能&#xff0c;每当我们在某宝某东上购买商品的时候&#xff0c;看中了哪件商品&#xff0c;就会加入购物车中&#xff0c;最后结算。购物车这一功能&#xff0c;方便消费者对商品进行管理&#xff0c;可以添加商品&#xff0c;删除商品&#…

CLI下的网页浏览器之二——Lynx

出自&#xff1a;http://vb2005xu.javaeye.com/blog/230044 Lynx浏览器使用指南 Lynx是一个字符界面下的全功能的WWW浏览器。Lynx 可以运行在很多种操作系统下&#xff0c;如VMS, UNIX, Windows 95, Windows NT等&#xff0c;当然也包括Linux。 由于没有漂亮的图形界面&#xf…

python中减法运算函数_详解 Python 的二元算术运算,为什么说减法只是语法糖?...

原题| Unravelling binary arithmetic operations in Python作者| Brett Cannon译者| 豌豆花下猫(“Python猫”公众号作者)声明| 本翻译是出于交流学习的目的&#xff0c;基于 CC BY-NC-SA 4.0 授权协议。为便于阅读&#xff0c;内容略有改动。大家对我解读属性访问的博客文章反…

【SQL】DQL语句影响行数不能超过XX值

mysql执行临时查看添加limit 10 查询 select * from msg_info cc WHERE DATE_FORMAT(cc.CREATE_DATE,%Y%m%d) 20231127;> 1025 - [xx_dql_where]DQL语句需要增加where条件;[xx_dql_explain]DQL语句影响行数不能超过20000,当前值180906; > 时间: 0.021s处理 select * …

Oracle访问同义词连接超时,利用同义词解决oracle用户访问其它schema的对象

由于应用需要&#xff0c;aa能访问bb的所有表。SQL> create user aa identified by oracle;User created.SQL> grant connect,resource to aa;Grant succeeded.SQL> create user bb identified by oracle;User created.SQL> grant connect,resource to bb;Grant su…

一个不错的讲解flex 3中自定义事件的文章

一个不错的讲解flex 3中自定义事件的文章 http://wangyisong.javaeye.com/blog/376118&#xff0c;一个不错的讲解flex 3中自定义事件的文章posted on 2009-08-08 17:41 jackyrong的世界 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/jackyrong/archive/2009…

oracle同义,oracle同义词

搞了几天数据同步的程序&#xff0c;写完之后觉得很浪费&#xff0c;因为oracle自身的数据库联机备份功能已经相当强大。不过关键一点是我们应用场景跟联机备份有很大差别。虽然这次没用上oracle自身备份功能&#xff0c;但是有一个通过建立db link 来实现同步倒也很简单&#…

stm32 整数加法循环时间_【教学设计】小数加法教学设计

小数加法教学设计刘秀锦舞钢市特殊教育学校教材分析本节课是第四单元“小数加减法”的第一课时&#xff0c;小数加减法是以整数加减法为基础进行教学的&#xff0c;本节课走踏实了&#xff0c;后边的知识才能顺利的进行下去&#xff0c;所以本节课还是以小步走、学一点、练一点…