Python变量作用域(全局变量和局部变量)

参考 Python变量作用域(全局变量和局部变量)

1. 局部变量

在函数内部定义的变量,它的作用域也仅限于函数内部,出了函数就不能使用了,我们将这样的变量称为局部变量(Local Variable)。

当函数被执行时,Python 会为其分配一块临时的存储空间,所有在函数内部定义的变量,都会存储在这块空间中。而在函数执行完毕后,这块临时存储空间随即会被释放并回收,该空间中存储的变量自然也就无法再被使用。

2. 全局变量

除了在函数内部定义变量,Python 还允许在所有函数的外部定义变量,这样的变量称为全局变量(Global Variable)。 和局部变量不同,全局变量的默认作用域是整个程序,即全局变量既可以在各个函数的外部使用,也可以在各函数内部使用。

定义全局变量的方式有以下 2 种:

  • 在函数体外定义的变量,一定是全局变量;
  • 在函数体内定义全局变量。即使用 global 关键字对变量进行修饰后,该变量就会变为全局变量。例如:
1
2
3
4
5
6
7
def text():
global add
add= "http://c.biancheng.net/java/"
print("函数体内访问:",add)

text()
print('函数体外访问:',add)

运行结果为:

1
2
函数体内访问: http://c.biancheng.net/java/
函数体外访问: http://c.biancheng.net/java/

注:在使用 global 关键字修饰变量名时,不能直接给变量赋初值,否则会引发语法错误