欢迎访问宙启技术站
智能推送

Python函数:作用域的概念及全局变量和局部变量

发布时间:2023-10-30 06:20:48

作用域的概念

在编程中,作用域是指变量的可访问范围。一个变量的作用域决定了在什么地方可以访问该变量。Python中有两种作用域,全局作用域和局部作用域。

全局作用域:

全局作用域中的变量在整个程序中都是可见和访问的。任何在函数外部定义的变量都属于全局作用域。例如:

x = 10

def my_function():

    print(x)

my_function()    # 输出 10

在上面的例子中,变量x在函数外部定义,因此它是全局变量。在函数my_function()内部,可以访问和使用这个全局变量。

局部作用域:

局部作用域中的变量只能在定义它们的函数内部访问和使用。一个函数的参数和在函数内部定义的变量都属于局部作用域。例如:

def my_function():

    y = 20

    print(y)

my_function()    # 输出 20

在上面的例子中,变量y在函数my_function()内部定义,因此它是局部变量。只能在这个函数内部进行访问和使用。

全局变量和局部变量:

全局变量:

全局变量在整个程序中都是可见和访问的。它们可以在函数内部和外部进行访问和使用。如果在函数内部尝试修改全局变量的值,Python将会创建一个新的局部变量,而不是修改全局变量的值。

x = 10

def my_function():

    x = 20

    print(x)

my_function()    # 输出 20

print(x)         # 输出 10

在上面的例子中,虽然函数内部定义了一个变量x,但是它只是一个局部变量,并不影响函数外部定义的全局变量x的值。

局部变量:

局部变量只能在定义它们的函数内部进行访问和使用。它们对于其他函数和代码块都是不可见的。

def my_function():

    y = 20

    print(y)

def another_function():

    print(y)

my_function()         # 输出 20

another_function()    # 报错:name 'y' is not defined

在上面的例子中,变量y在函数my_function()中定义,因此它是一个局部变量。因此,在函数another_function()中无法访问和使用变量y。

总结:

作用域是指变量的可访问范围。在Python中,有全局作用域和局部作用域。

全局作用域中的变量在整个程序中都是可见和访问的。

局部作用域中的变量只能在定义它们的函数内部进行访问和使用。

全局变量可以在函数内部和外部进行访问和使用,但修改的是一个新的局部变量,而不是真正的全局变量。

局部变量只能在定义它们的函数内部进行访问和使用,对于其他函数和代码块都是不可见的。