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

Python中如何定义局部和全局变量的函数?

发布时间:2023-06-01 14:42:21

在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的值。