首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python非本地语句

Python非本地语句
EN

Stack Overflow用户
提问于 2009-08-11 17:36:24
回答 4查看 143.4K关注 0票数 418

Python nonlocal语句(在Python3.0及更高版本中)的作用是什么?

Python官方网站上没有文档,help("nonlocal")也不起作用。

EN

回答 4

Stack Overflow用户

发布于 2009-08-11 17:40:52

简而言之,它允许您为外部(但非全局)作用域中的变量赋值。有关所有血淋淋的细节,请参阅PEP 3104

票数 108
EN

Stack Overflow用户

发布于 2010-12-05 21:30:02

@ooboo:

它采用与源代码中的参考点“最接近”的点。这就是所谓的“词法作用域”,至今已有40多年的历史了。

Python的类成员实际上在一个名为__dict__的字典中,并且永远不会被词法作用域访问到。

如果你不指定nonlocal而指定x = 7,它将创建一个新的局部变量"x“。如果你指定了nonlocal,它会找到“最接近的”"x“并赋值给它。如果您指定了nonlocal,并且没有"x",它将给您一条错误消息。

关键字global对我来说总是很奇怪,因为它会愉快地忽略除最外面的那个之外的所有其他"x“。真奇怪。

票数 22
EN

Stack Overflow用户

发布于 2011-08-04 18:25:00

我个人对“非本地”语句的理解是,“非本地”是一种在迭代函数中使用全局功能的方法,而不是代码本身。函数之间的全局语句。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1261875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档