栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

python装饰器中的变量范围

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python装饰器中的变量范围

由于

nr_of_rounds
是由 闭包 拾取的,因此您可以将其视为“只读”变量。如果要写入它(例如减少它),则需要明确地告诉python
-在这种情况下,python3.x
nonlocal
关键字将起作用。

简要说明一下,当Cpython遇到函数定义时,它会执行以下操作:查看代码并确定所有变量是 local 还是 non-local
。局部变量(默认情况下)是赋值语句,循环变量和输入参数出现在左侧的任何内容。其他所有名称都不是本地名称。这样可以进行一些巧妙的优化1。要以与本地相同的方式使用非本地变量,需要通过

global
nonlocal
语句明确告知python
。当python遇到它认为 应该 是本地的东西但实际上不是的时候,您会得到一个
UnboundLocalError


1 Cpython字节码生成器将本地名称转换为数组中的索引,以便本地名称查找(LOAD_FAST字节码指令)与索引数组一样快,并且具有正常的字节码开销。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596523.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号