Python中本地变量和全局变量的规则是什么?

Python中本地变量和全局变量的规则是什么?

在Python中,变量的作用域有两种,一种是本地变量,另一种是全局变量。本地变量指的是在函数内部定义的变量,全局变量指的是在函数外部定义的变量。两种变量有着不同的作用范围和使用规则。

阅读更多:Python 教程

本地变量

在函数内部定义的变量称为本地变量,它们的作用域仅限于函数内部。在函数内部对于本地变量的引用是可行的,但是在函数外部引用本地变量会抛出NameError异常。下面是一个示例:

def test():
    x = 100
    print(x)

test()
print(x)

输出结果为:

100
NameError: name 'x' is not defined

全局变量

在函数外部定义的变量称为全局变量,它们的作用范围可以是整个程序或多个函数。在函数内部对于全局变量的引用需要加上global关键字,否则会被视为本地变量。下面是一个示例:

x = 100

def test():
    global x
    x = 200
    print(x)

test()
print(x)

输出结果为:

200
200

在上面的示例中,global x语句告诉Pythonx是全局变量,而不是本地变量。因此,在执行x = 200时会将全局变量x的值改为200。

变量作用域的查找顺序

当我们在函数中引用一个变量时,Python会按照以下顺序查找该变量:

  1. 尝试在本地变量中查找该变量;
  2. 如果在本地变量中没有找到,就尝试在函数外部的局部变量中查找该变量;
  3. 如果还没有找到,就尝试在全局变量中查找该变量;
  4. 如果还没有找到,就抛出NameError异常。

下面是一个示例:

x = 100

def test():
    x = 200
    print(x)

test()
print(x)

输出结果为:

200
100

在上面的示例中,函数test()中的x是一个本地变量,它的值是200。而在函数外部的x是全局变量,它的值是100。因此,在执行print(x)时,会输出全局变量x的值,即100。

结论

在Python中,变量的作用域有两种,一种是本地变量,另一种是全局变量。它们的作用范围不同,使用规则也有所不同。在函数内部对于本地变量的引用是可行的,但是在函数外部引用本地变量会抛出NameError异常;在函数内部对于全局变量的引用需要加上global关键字,否则会被视为本地变量。当引用一个变量时,Python会按照本地变量、局部变量、全局变量的顺序查找该变量。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程