Python函数:作用域的概念及全局变量和局部变量
作用域的概念
在编程中,作用域是指变量的可访问范围。一个变量的作用域决定了在什么地方可以访问该变量。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中,有全局作用域和局部作用域。
全局作用域中的变量在整个程序中都是可见和访问的。
局部作用域中的变量只能在定义它们的函数内部进行访问和使用。
全局变量可以在函数内部和外部进行访问和使用,但修改的是一个新的局部变量,而不是真正的全局变量。
局部变量只能在定义它们的函数内部进行访问和使用,对于其他函数和代码块都是不可见的。
