目录
- 一、背景
- 二、global和nonlocal关键字
- 1.global关键字
- 2.nonlocal关键字
- 三、参考
- 四、总结
一、背景
实际开发过程中,经常会遇到很多完全相同或者非常相似的操作,这时,可以将实现类似操作的代码封装为函数,然后在需要的地方调用该函数。这样不仅可以实现代码的复用,还可以使代码更有条理性,增加代码的可靠性。下面我们来介绍一下python的函数global和nonlocal关键字相关内容。
二、global和nonlocal关键字
当内部作用域想要使用外部作用域的变量时,可使用global和nonlocal关键字。
1.global关键字
在函数内部修改一个定义在函数外的变量时,须使用global关键字明确声明变量。在函数内部通过global关键字来声明或定义全局变量,可分为两种情况:
(1)一个变量已在函数外定义,如果在函数内需要使用该变量的值或修改该变量的值,并将修改结果反映到函数外,可以在函数内用关键字global明确声明该全局变量。
(2)在函数内部直接使用global关键字将一个变量声明为全局变量,如果在函数外没有定义该全局变量,在调用该函数后,会创建新的全局变量。
例:分析以下程序的运行结果。
num = 1
def fun():
global num #使用global关键字声明变量为全局变量
num += 1
print('函数内num的值为',num)
fun()
print('函数外num的值为',num)
结果如下。
2.nonlocal关键字
如果要在一个嵌套的函数中修改嵌套作用域中的变量,则须使用nonlocal关键字。
例:分析以下程序的运行结果。
def outer():
num = 1
def inner():
nonlocal num #nonlocal关键字声明
num = 2
print(' inner函数中num的值为',num)
inner()
print(' outer函数中num的值为',num)
outer()
结果如下。
三、参考
1、廖雪峰的官网
2、python官网
3、Python编程案例教程