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关键字访问上一层函数的变量。
