Python 中的全局变量和局部变量?


有两种类型的变量:全局变量和局部变量。全局变量的作用域是整个程序,而局部变量的作用域仅限于其定义所在的函数。

示例

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())。例如在下面的程序中 - 有两个局部变量 - xy

示例

def sum(x,y): sum = x + y return sum print(sum(5, 10))

输出

变量 xy 只能在函数 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 教程

更新于: 2023-08-31

12K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.