小朋友学Python(27):全局变量的引用和修改

一、引用

例1

a = 1
def func():
    if 1 == a:
        print("a = %d" % a)
if __name__ == '__main__':
func()

运行结果:

a = 1

二、修改

例2

a = 1
def func():
    a = 2
    print ("in func a:", a)
if __name__ == '__main__':
    print("before func a:", a)
    func()
    print("after func a:", a)

运行结果:

before func a: 1
in func a: 2
after func a: 1

说明: 从程序运行结果可以看出,全局变量a的值,并没有成功被修改为2. 这是因为,func()中的a,是一个局部变量,是在新的内存区域生成的一个新对象,只是名字也叫a罢了。

例3

a = 1
def func():
    global a
    a = 2
    print ("in func a:", a)
if __name__ == '__main__':
    print("before func a:", a)
    func()
    print("after func a:", a)

运行结果:

before func a: 1
in func a: 2
after func a: 2

说明:加了global之后,func中的a就是第一行定义的全局变量a,所以可成功修改值

三、结论

若只是引用全局变量,不需要加global关键字; 若要修改全局变量,需要加global关键字。

原文发布于微信公众号 - 海天一树(gh_de7b45c40e8b)

原文发表时间:2018-03-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐百川的学习频道

Python学习笔记 模块介绍

模块 导入模块 Python官方教程让我们在Python解释器中练习。但是当我们结束解释器,所有的代码都消失了。如果我们希望让代码永久保存的话,就需要将它们保存...

1876
来自专栏Hongten

python开发_fileinput

1453
来自专栏程序员互动联盟

【专业技术第七讲】linux下如何编译C语言?

存在问题: 小伙伴们都知道gcc -c -o 但是其中的过程和一些参数就不是太清楚了,往往编译出错不知道咋办? 解决方案: 我们来简单普及一下,让大家不盲从请...

3585
来自专栏决胜机器学习

《Redis设计与实现》读书笔记(十二) ——Redis键的生存时间与过期时间

《Redis设计与实现》读书笔记(十二) ——Redis键的生存时间与过期时间 (原创内容,转载请注明来源,谢谢) 1、设置方式 在redis客户端,可以通过e...

2904
来自专栏海天一树

小朋友学Python(17):文件

Python 提供了必要的函数和方法进行默认情况下的文件基本操作。你可以用 file 对象做大部分的文件操作。 一、打开和关闭文件 例1 (1)创建名为test...

2845
来自专栏有趣的django

12.python进程\协程\异步IO

进程 Python中的多线程无法利用多核优势 , 所以如果我们想要充分地使用多核CPU的资源 , 那么就只能靠多进程了 multiprocessing模块中提供...

3948
来自专栏自动化测试实战

《selenium2 python 自动化测试实战》(18)——webdriver错误截图

3776
来自专栏Java技术分享

Ajax请求中给全局变量赋值的解决方案

昨天PP遇到一个问题,ajax修改全局变量后,外面获取不到ajax里赋的值,结果为空 问题代码如下图: ? 输出结果如下图: ? 原因: 先在控制台看看是a...

2287
来自专栏小狼的世界

VIM的使用技巧

  光标移到起始行,输入ma 光标移到结束行,输入mb 光标移到粘贴行,输入mc 然后 :'a,'b co 'c

732
来自专栏瓜大三哥

UVM(十)之config机制续2

UVM(十)之config机制续2 1.用专门的类来组织config变量 到这里为止,本章目前所设计的都是少量数据在不同的component之间的传递,对于一...

2479

扫码关注云+社区

领取腾讯云代金券