Python作用域陷阱
来源:互联网 发布:淘宝童装能做吗 编辑:程序博客网 时间:2024/05/22 09:38
Python名字解析过程只搜索三个抽象层,局部,全局和内置(Local,Global,Built-in)。在Python中,可以一个函数内部定义另外的函数。如果需要创建一组外部无法公共使用的函数,这项功能就会很有用。问题是作用与的规则依然适用。考虑下面的例子:
def funca(): value = 69 funcb() def funcb(): print(value*2)上面的代码不能正确执行,因为funcb试图访问变量value。但是value在局部,全局或内置作用域均不存在。函数不会自动集成父作用域,Pyhton名称空间管理器也不会搜寻函数的父作用域。
传递value的方法是使value作为嵌入函数的参数:
def funca(): value = 69 funcb() def funcb(value): print(value*2)对于funcb作用域来说,value还是局域变量,因此可以使用相同的名字,而且LGB规则有效。
0 0
- Python作用域陷阱
- javascript 变量作用域的陷阱
- python陷阱
- Python陷阱
- python 变量作用域
- python 变量作用域
- python变量作用域
- python作用域
- python 变量作用域
- python 变量作用域
- python变量作用域
- python 变量作用域
- python变量作用域
- python的作用域
- python作用域概述
- 【Python】变量作用域
- python 变量作用域
- python学习:作用域
- MySQL InnoDB 锁机制
- settype函数和gettype函数
- iBATIS的使用
- java常见问题小结
- 上海纽菲思医疗美容
- Python作用域陷阱
- 解决scott用户执行计划看不到统计信息的问题
- (模板)dlx 精确覆盖和重复覆盖
- MyEclipse10.7集成SVN插件
- 【解决】缺少libstdc++.so.6库的原因及解决办法
- C#屏幕右下角弹窗
- css display:none使用
- 适配iPhone6和iPhone6 Plus
- Future和Callable