Python中如何定义局部和全局变量的函数?
在Python中,我们可以使用关键字global和nonlocal来定义全局和非本地变量。
### 全局变量
全局变量是在程序的顶层定义的变量,它可以在程序中的任何位置访问。在Python中,我们可以使用global关键字将变量声明为全局变量。如下所示:
def func():
global x
x = 10
func() # 调用函数
print(x) # 输出结果为10
在这个例子中,我们定义了一个函数func(),并使用global关键字将变量x声明为全局变量。在调用func()时,变量x被赋值为10。我们接着在函数外部使用print语句打印变量x的值。输出结果是10,因为x是全局变量,它可以在整个程序中使用。
### 局部变量
局部变量是在函数内部定义的变量,它只能在函数内部访问。在Python中,局部变量是在函数的参数列表或函数块中使用的变量。如下所示:
def func(x):
y = 10
return x + y
result = func(20)
print(result) # 输出结果为30
在这个例子中,我们定义了一个函数func(),并在函数内部使用了变量x和y。变量x是函数的一个参数,它是从函数外部传递进来的值。变量y是在函数内部定义的一个变量,它只能在函数内部使用。我们调用函数func(),将值20传递给变量x,并将结果赋给变量result。我们接着在函数外部使用print语句打印变量result的值。输出结果是30,因为返回的结果是变量x和y的和。
### 非本地变量
在嵌套函数中,我们可以使用nonlocal关键字访问外部函数的变量。如下所示:
def outer_func():
x = 10
def inner_func():
nonlocal x
x = 20
inner_func()
print(x)
outer_func() # 输出结果为20
在这个例子中,我们定义了两个函数:outer_func()和inner_func()。变量x是在outer_func()函数内部定义的一个变量。在inner_func()函数内部,我们使用nonlocal关键字将变量x声明为非本地变量,这样我们就可以在内部函数中修改外部函数的变量。调用outer_func()函数时,我们调用inner_func()函数并将变量x的值修改为20。我们接着在函数外部使用print语句打印变量x的值。输出结果是20,因为我们在内部函数中修改了变量x的值。
