Python作用域与带有循环变量的默认参数相比较
来源:互联网 发布:windows字体怎么设置 编辑:程序博客网 时间:2024/05/21 10:05
Python作用域与带有循环变量的默认参数相比较
如果lambda或者def在函数中定义,嵌套在一个循环之中,并且嵌套的函数引用了上一层作用域的变量,该变量被循环所改变,所有在这个循环中产生的函数将会有相同的值——在最后一次循环中完成时被引用变量的值。
If a lambda or def defined within a function is nested inside a loop, and the nested function references an enclosing scope variable that is changed by that loop, all functions generated within the loop will have the same value—the value the referenced variable had in the last loop iteration. In such cases, you must still use defaults to save the variable’s current value instead.
具体情况如下:
如果能弄清楚嵌套作用域(例如:在def 中 def) ,那么可以这样理解:
lambda表达式其实也可以理解为一个函数(不知这样描述是否准确),那么lambda的调用动作的运行是在def运行后发生的,lambda记住了在def中嵌套作用域中的i。由于是循环,所以在调用makeActions后,实际上lambda只记住了最后一次循环的值,也就是4.
注:本人在学习Python,之前学过Java,这些东西与Java中的内容出入很大,并且属于基础知识,如果是在学习Python时囫囵吞枣,那么将会遇到很多无法理解的东西,以及很多低级的错误。我还在学习中,如若上述内容有地方描述错误,望您指正!
- Python作用域与带有循环变量的默认参数相比较
- python 作用域与带有循环变量的默认参数比较
- js 默认的参数、可变的参数、变量作用域
- js 默认的参数、可变的参数、变量作用域
- Python循环中的变量作用域的灵异现象
- 带有默认参数的构造函数
- C++ 带有默认参数的虚函数
- python的变量作用域
- Python:变量的作用域
- python-变量的作用域
- Python变量的作用域
- python变量的作用域
- python的变量作用域
- Python的变量作用域
- for循环变量作用域的范围
- python的闭包与变量作用域
- 讲解Python中for循环下的索引变量的作用域
- Python函数与变量作用域
- Unity3D Shader的几种基本编程方式
- 36、C#学习笔记2
- 数字图像处理-小波变换小白解释基本原则
- 如何获取登录Oracle数据库的客户端IP等会话信息
- Java开发中的23种设计模式详解(转)
- Python作用域与带有循环变量的默认参数相比较
- android 加载gif动图 自定义GifView
- PHP给前端返回一个JSON‘对象’
- UVA 1625
- javascript无法处理位数大于16位的整数
- 块级元素的一些小问题
- c++11 override and final
- 关于Fragment中getActivity为Null的问题
- Linux系统目录结构