您的位置 首页 > 德语词汇

global warming是什么意思 Python中的global关键字

大家好,关于global warming是什么意思很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于Python中的global关键字的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

1、今天来了解下Python中的global关键字。

2、实战案例演示之前,先要了解下Python的作用域。

global warming是什么意思 Python中的global关键字

3、曾经在闭包的文章《python小课堂26-进阶必修之闭包(一)》中,我写过一段关于作用域的介绍,复制下:

4、Python变量的作用域一共有4种,分别是:

5、看完概念,接下来看看实例,请自行思考后再看答案。

6、实例一:即使变量同名,优先引用的是局部变量。

7、实例二&实例三:闭包的情况,如果内部函数没有局部变量,则会优先引用闭包的环境变量。

8、先来解释下,Global中文含义:全球的,全面的。

9、上面的作用域四个案例如果看明白了,那我们继续。

10、有个变量x=5,现需要让多个函数共享并且在函数内引用它,请用代码实现下。

11、有的小伙伴可能已经想到,这题的答案不就是上面的实例四吗?

12、在func_a和func_b函数中,你们看到外面的x=5已经作为全局变量在这两个函数中分别成功打印。

13、对于全局变量来说,既然能函数体内直接引用,并且程序没有报错,那为什么还要用global关键字?

14、现在在重新声明一个func_c函数,并且对这个x进行加1的操作。你觉得会打印什么结果?

15、可以看到已经报错了,UnboundLocalError,错误代码第9行x=x+1。

16、在这个例子中设置的x=5属于全局变量,而在函数内部中没有对x的定义。

17、根据Python访问局部变量和全局变量的规则:当搜索一个变量的时候,Python先从局部作用域开始搜索,如果在局部作用域没有找到那个变量,那样Python就会像上面的案例中介绍的作用域范围逐层寻找。

18、最终在全局变量中找这个变量,如果找不到则抛出UnboundLocalError异常。

19、但你会想,明明已经在全局变量中找到同名变量了,怎么还是报错?

20、因为内部函数有引用外部函数的同名变量或者全局变量,并且对这个变量有修改的时候,此时Python会认为它是一个局部变量,而函数中并没有x的定义和赋值,所以报错。

21、global关键字为解决此问题而生,在函数func_c中,显示地告诉解释器x为全局变量,然后会在函数外面寻找x的定义,执行完x=x+1后,x依然是全局变量。

22、好了,这就是本期的内容,关于global的相关内容,搞明白作用域,弄清同名变量赋值时的机制,在未来的编程道路中就不会出错啦。

23、如果你有什么想说的,不懂得,欢迎评论区留言!~

OK,本文到此结束,希望对大家有所帮助。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023