Python 的 global 和 nonlocal 关键字

全局变量 vs 本地变量

根据 LEGB 规则,Python 先影响局部变量。如果我们在方法中设置局部变量x=1,它不会影响全局变量x:

Screen Shot 2015-11-27 at 11.05.49 AM

如果我们想要在函数中修改全局变量,我们可以使用 global 关键字引入全局变量:

Screen Shot 2015-11-27 at 11.08.55 AM

本地变量 VS enclosed

代码解释:

Screen Shot 2015-11-27 at 11.14.15 AM

我们可以用 nonlocal 关键字修改 outer 里的变量:

Screen Shot 2015-11-27 at 11.23.59 AM

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注