简单理解python中的nonlocal和global关键字

Def

nonlocal: 在一个子函数中声明当前变量不是局部变量,也就是说,可以在当前子函数中使用其父函数定义的变量,并且可以作修改。且在子函数中修改之后在父函数中的变量也会变成修改之后的变量。
eg:

x = 1
def func():
	nonlocal x
	x = 2
	return x
print(func())
print(x)

得到结果

2
2

global: 在一个子函数中定义的变量是全局变量,可以在当前子函数的外面使用这个定义的global变量。

def func():
	global x
	x = 2
func()
print(x)

得到结果

2

Summary

再总结一下,nonlocal是从当前函数外拿变量修改,global是把当前函数拿到函数外,从而函数外可以使用并且修改。
nonlocal: 函数内 <- 函数外
global: 函数内 -> 函数外

参考:
Python nonlocal Keyword (w3schools.com)

Python global Keyword (w3schools.com)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值