Python 中的全局变量和局部变量?
pythonserver side programmingprogramming
变量有两种类型:全局变量和局部变量。全局变量的作用域是整个程序,而局部变量的作用域仅限于定义它的函数。
示例
def func(): x = "Python" s = "test" print(x) print(s) s = "Tutorialspoint" print(s) func() print(x)
输出
在上面的程序中 - x 是一个局部变量,而 s 是一个全局变量,我们只能在定义的函数内访问局部变量(上面的 func() )并且尝试在其范围之外调用局部变量(func() )将通过一个错误,如下所示 -
Python test Tutorialspoint Traceback (most recent call last): File "main.py", line 9, in <module> print(x) NameError: name 'x' is not defined
但是,我们可以在程序中的任何地方调用全局变量,包括程序中定义的函数(func())。
局部变量
局部变量只能在其范围内访问(如上面的 func())。如下面的程序中所示,有两个局部变量 - x 和 y。
示例
def sum(x,y): sum = x + y return sum print(sum(5, 10))
输出
变量 x 和 y 仅在函数 sum() 内部起作用/使用,并且它们不存在于函数外部。因此,尝试在其范围之外使用局部变量可能会引发 NameError。因此,下面这行显然不起作用。
File "main.py", line 2 sum = x + y ^ IndentationError: expected an indented block
全局变量
全局变量可以在程序的任何地方使用,因为它的作用域是整个程序。让我们用一个非常简单的例子来理解全局变量 −
示例
z = 25 def func(): global z print(z) z=20 func() print(z)
输出
25 20
调用 func(),全局变量的值会为整个程序改变。下面的示例显示了局部变量和全局变量以及函数参数的组合 −
def func(x, y): global a a = 45 x,y = y,x b = 33 b = 17 c = 100 print(a,b,x,y) a,b,x,y = 3,15,3,4 func(9,81) print (a)
输出
45 17 81 9 3
从这里开始学习 Python:Python 教程