变量想必大家在学习编程时就已经学习了吧。
我们在普通的编程里,变量的修改是会被整个程序看见的。变量在函数里会发生什么呢?
def my():
m=0
print(m)
运行后显示
Traceback (most recent call last):
File “***”, line 3, in <module>
print(m)
NameError: name ‘m’ is not defined
这是怎么回事呢?原来,m变量只在my函数里才起作用。所以我们要让他的更改让“全世界”都知道。
解决方案:m=0的上面添加一行global m(global关键字要在定义变量之前加)
运行程序:0
那么,我们的程序有多个函数,但整个程序里我们的单独的变量只在一个单独的函数里面使用,我们还可以使用关键字。这个关键字的作用是仅这个函数可见。
def my():
nonlocal abc
abc=0
print(abc)
print(abc)
运行上述代码,程序显示
SyntaxError: no binding for nonlocal ‘abc’ found
这是因为,上面使用的关键字只是把abc当成局部变量了。
下面,我来总结一下本篇文章的知识。
1.global把变量变成全局变量
2.nonlocal把变量变成局部变量