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

Python函数的作用域及全局变量和局部变量的使用方法

发布时间:2023-12-03 02:53:17

Python中的作用域指的是变量的可访问范围。在定义函数时,可以在函数内部创建变量,这些变量只能在函数内部使用,称为局部变量。而在函数外部定义的变量,可以在函数内部和外部使用,称为全局变量。在函数中,可以使用全局变量和局部变量,但是在函数外部,只能使用全局变量。

局部变量的作用域限制在函数内部,函数执行结束后局部变量会被销毁,无法再被访问。在函数内部定义的变量,会屏蔽同名的全局变量。例如:

def my_function():
    name = 'Alice'
    print(name)

name = 'Bob'
my_function()  # 输出 Alice
print(name)    # 输出 Bob

在上面的例子中,函数my_function内部定义了一个局部变量name,打印出来的是Alice。而在函数外部定义的全局变量name,打印出来的是Bob

如果在函数中需要使用全局变量,可以使用global关键字声明全局变量。例如:

def my_function():
    global age
    age = 20
    print(age)

age = 25
my_function()  # 输出 20
print(age)     # 输出 20

在上面的例子中,使用global关键字声明了全局变量age,在函数内部对其进行修改,修改后的值在函数外部仍然可见。

在Python中,还可以使用nonlocal关键字访问嵌套函数的上一层函数的变量。例如:

def outer_function():
    x = 'Hello'

    def inner_function():
        nonlocal x
        x += ' World'
        print(x)

    inner_function()  # 输出 Hello World

outer_function()

在上面的例子中,inner_function内部使用nonlocal关键字声明了外部函数outer_function的变量x,对其进行了修改,并在函数外部打印出了修改后的结果。

总结起来,Python中的函数作用域分为全局作用域和局部作用域。全局变量可以在函数内部和外部使用,而局部变量只能在函数内部使用。在函数内部需要修改全局变量时,可以使用global关键字声明全局变量。在嵌套函数中,可以使用nonlocal关键字访问上一层函数的变量。