python全局变量的作用域是从定义位置到程序结束位置_python变量的作用域

变量的作用域

变量的作用域是指一个变量起作用的范围,在带有函数的程序中,变量有全局变量和局部变量,全局变量的作用域是整个程序,而局部变量的作用域仅仅局限于函数内。

1.全局变量

全局变量在函数之外定义,作用域是从定义位置开始,一直到程序模块结束。如果定义了重名的全局变量,那么之前的会被覆盖,如果在函数内部想要修改全局变量的值,需使用关键字global声明该变量。

be81193c79d99a461f258c00cf625ad8.png

输出结果:

20

第一行给一个全局变量num赋初值100,然后在函数fun()里面修改这个全局变量的值,变为20,如果没有使用global声明num为全局变量,那么全局变量num的值将不会改变,输出的结果仍然是100,请自行实验。

2.局部变量

在函数内部定义的变量(包括形参)叫做局部变量。局部变量的作用域仅仅限于该函数内部,如果出了函数的范围,该变量视为未定义。

5c16918df13729bef39d5198f626fff0.png

输出结果:

10

Traceback (most recent call last):

File "C:\Users\Administrator\Desktop\python\test.py", line 5, in

print(x)

NameError: name 'x' is not defined

其中的变量x因为在函数fun02()内部定义,所以属于局部变量,在第四行运行该函数时,会输出这个局部变量的值为10,但是第五行的输出x语句,因为已经脱离了函数,在函数之外没有定义全局变量x,故会报错。

当局部变量和全局变量重名的时候,局部变量会屏蔽全局变量,在函数中对该变量的操作均只针对局部变量,全局变量不受影响。

5743ed3f5ffc6df7df06ec45e64eac9c.png

输出结果:

我在函数内部,我是局部变量a: 888

我在函数外部,我是全局变量a: 666

正是这个原因,我们如果想在函数内部修改全局变量的值,必须使用global声明该变量为全局变量,否则仅仅是在函数内定义了一个和全局变量重名的局部变量而已,不会对全局变量造成任何影响。

由于局部变量的引用比全局变量要快一些,所以我们往往优先使用局部变量。

本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/jiaocheng/Python/2020/0118/522.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值