1. 编程学习网 > 编程教程 > Python教程 > python变量的作用域

python变量的作用域

变量的作用域

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

1.全局变量

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

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

2.局部变量

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

输出结果:
10
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\python\test.py", line 5, in <module>
    print(x)
NameError: name 'x' is not defined
其中的变量x因为在函数fun02()内部定义,所以属于局部变量,在第四行运行该函数时,会输出这个局部变量的值为10,但是第五行的输出x语句,因为已经脱离了函数,在函数之外没有定义全局变量x,故会报错。
 
当局部变量和全局变量重名的时候,局部变量会屏蔽全局变量,在函数中对该变量的操作均只针对局部变量,全局变量不受影响。



输出结果:
       我在函数内部,我是局部变量a: 888
我在函数外部,我是全局变量a: 666
 
正是这个原因,我们如果想在函数内部修改全局变量的值,必须使用global声明该变量为全局变量,否则仅仅是在函数内定义了一个和全局变量重名的局部变量而已,不会对全局变量造成任何影响。
由于局部变量的引用比全局变量要快一些,所以我们往往优先使用局部变量。

 

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

联系我们

在线咨询:点击这里给我发消息

咨询电话:400-998-2681

工作时间:7*24小时无休