1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python nonlocal的用法_python中的global和nonlocal关键字怎么使用

python nonlocal的用法_python中的global和nonlocal关键字怎么使用

时间:2023-01-23 18:41:17

相关推荐

python nonlocal的用法_python中的global和nonlocal关键字怎么使用

global和nonlocal关键字

当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了。

以下实例修改全局变量num:

#!/usr/bin/python3

num=1

deffun1():

globalnum#需要使用global关键字声明

print(num)

num=123

print(num)

fun1()

print(num)

以上实例输出结果:

1

123

123

如果要修改嵌套作用域(enclosing作用域,外层非全局作用域)中的变量则需要nonlocal关键字了,如下实例:

#!/usr/bin/python3

defouter():

num=10

definner():

nonlocalnum#nonlocal关键字声明

num=100

print(num)

inner()

print(num)

outer()

以上实例输出结果:

100

100

另外有一种特殊情况,假设下面这段代码被运行:

#!/usr/bin/python3

a=10

deftest():

a=a+1

print(a)

test()

以上程序执行,报错信息如下:

Traceback(mostrecentcalllast):

File"test.py",line7,in

test()

File"test.py",line5,intest

a=a+1

UnboundLocalError:localvariable"a"referencedbeforeassignment

错误信息为局部作用域引用错误,因为test函数中的a使用的是局部,未定义,无法修改。

修改a为全局变量,通过函数参数传递,可以正常执行输出结果为:

#!/usr/bin/python3

a=10

deftest(a):

a=a+1

print(a)

test(a)

执行输出结果为:

11

本博客源码Github地址:

请随手给个star,谢谢!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。