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

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程