Python学习
6.4 变量作用域
1.变量的作用域:
(1).在函数里面我们定义一个变量c,那么这个变量c的作用范围仅仅存在于函数内部,并不会影响在函数外部定义的变量c。如下:
c = 50
def add(x, y):
c = x + y
print(c)
add(1,2)
print(c)
输出结果:
(2).函数外部的作用域覆盖整个文件,所以可以在函数内部引用函数外部的这个变量。如下:
c = 10
def demo():
print(c)
demo()
输出结果:10
但是在函数的外部无法使用局部变量,如下的代码,会报错:
def demo():
c = 50
print(c)
对于在函数外部定义的变量我们称作全局变量,全局变量是在整个应用程序中都可以使用,并不局限于某一个模块;在函数内部定义的变量我们称作局部变量。
(3).在for循环外部,可以引用for循环内部的变量(这点区分于其他的语言),如下:
def demo():
c = 50
for i in range(0,9):
a = 'a'
c += 1
print(c)
print(a)
demo()
输出结果:
这是因为Python里面没有块级作用域的概念,所以在函数中的if…else、for循环、while里面的变量会被视作和函数的变量是同一个级别的。
2.global关键字:
Python提供一个关键字“global”,可以在外部访问局部变量。如下:
def demo():
global c
c = 2
demo()
print(c)
成功打印出c的值2。用global关键字修饰的变量为全局变量,同样不局限于一个模块,可以被其他模块调用。