python全局和局部变量,python中全局变量和局部变量的区别
序
学编程的人应该不知道全局变量和局部变量这两个术语。Python和许多编程语言一样,有全局和局部变量的概念。
然而,与其他编程语言不同
全局变量和局部变量的本质区别在于范围。
如果你用简单易懂的语言理解它,
全局变量在整个py文件中声明,可以全局访问。
局部变量由函数声明,并且只能由该函数调用。如果你试图在作用域之外调用,程序将会中断。
如果在函数内部定义了一个与全局变量同名的局部变量,可能会产生意想不到的效果。因此,不建议这样做。这个计划变得不合理。
让我们看几个例子来理解全局变量和局部变量的区别:
演示1:
deffun(x):
y=2
打印(乘法(,x*y))的执行结果))))))))))))))))。
num1=1
Print (initial num1=,num1))。
乐趣(排名第一)
打印(y的值为),y
执行结果:
该错误是由于试图访问局部变量,但访问位置不在变量y的范围内。
演示2:
deffun(:
num1=2
在函数中校正后打印( num1=,num1)。
num1=1
Print (initial num1=,num1))。
fun())
Print (num1=,执行函数后的num1)。
执行结果:
改变函数内部的全局变量后,你会发现在函数执行后,改变是无效的,全局变量不受影响。
再看看:
演示3:
deffun(:
num1*=2
在函数中校正后打印( num1=,num1)。
num1=1
Print (initial num1=,num1))。
fun())
Print (num1=,执行函数后的num1)。
执行结果:
有一个错误。这是因为fun))函数使用了局部变量num1。还是那句话,这是一个和全局变量同名的局部变量,使用前必须赋值,不要这样用。
全局关键字
如果你真的想改变一个函数中全局变量的值,使用global关键字。
演示4:
deffun(:
全球排名第一
num1=2
在函数中校正后打印( num1=,num1)。
num1=1
Print (initial num1=,num1))。
fun())
Print (num1=,执行函数后的num1)。
执行结果:
global关键字用来告诉python编译器这个变量是全局变量而不是局部变量,实际上类似于“引用”的意思
非本地关键字
我们再来看另一个与变量相关的关键词,非局部。顾名思义,这意味着当前变量不是局部变量。非本地是Python3.0中的新关键字,python2.x不支持
首先,让我们看看代码。
deffun(:
num2=3
deffun2(:)
num2*=2
Print (num2 ,num2))。
返回函数2()
fun())
执行结果:
错误原因同上,使用了未定义的局部变量。但是num2不是全局变量,而是fun2函数之外的变量。当您尝试使用global定义num2时,也会报告一个错误。(你试试)
在这种情况下,非本地关键字是必需的。
deffun(:
num2=3
deffun2(:)
非局部num2
num2*=2
Print (num2 ,num2))。
返回函数2()
fun())
执行结果:
这样,程序就会正常运行。
摘要
至此,关于Python中全局变量和局部变量的文章都介绍到这里了。有关Python全局和局部变量的更多信息,请在脚本之家搜索以前的文章,或者继续参考下面的相关文章。以后想支持剧本之家。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。