小朋友学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 条评论
登录 后参与评论

相关文章

来自专栏Hongten

python开发_fileinput

1173
来自专栏nummy

ipython 自动加载 auto_reload 扩展

在开发中django或者flask开发中,调试的时候经常用到manager shell.如果安装了ipython的话,默认是打开ipython的。在调试过程中,...

923
来自专栏C/C++基础

Linux命令(26)——rename命令

功能类似于mv,可实现文件或者目录的重命名,mv不能批量处理,而rename可以。

521
来自专栏海天一树

小朋友学Python(17):文件

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

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

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

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

3505
来自专栏坚毅的PHP

用c++写一个广告系统

用到的基础类库 1、sstream <sstream> 库定义了三种类:istringstream、ostringstream和stringstream,分别用...

3327
来自专栏大前端_Web

NodeJS学习二CommonJS规范

Node程序由许多个模块组成,每个模块就是一个文件。Node模块采用了CommonJS规范。

1122
来自专栏xingoo, 一个梦想做发明家的程序员

使用gcc编译gdb调试

gcc 在linux系统中,默认是没有安装gcc编译器的,可以通过命令 rpm -q | grep gcc  来查看。安装命令为: yum -y install...

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

Python学习笔记 模块介绍

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

1826
来自专栏电光石火

给博客添加节日雪花

二话不说先上效果图: ? 需要的朋友请看下面的说明,对JQ比较了解的朋友可以直接下载。 下载地址:jQuery圣诞下雪花.rar 注意事项 ...

2137

扫码关注云+社区