零基础学python-18.8 嵌套lambda与作用域
2015-10-21 00:00
239 查看
这一章节我们来讨论一下嵌套lambda与作用域
我们在前面的章节已经涉及到一些作用域与lambda表达式,例如:
上面的代码就是lambda表达获取test的参数N,即便test已经不是激活状态
我们下面将使用纯lambda表达式模拟上面的代码:
如果我们再精简一下,得出下面的代码:
虽然代码足够的精简,但是如果不是很懂lambda表达式的程序员维护上面的代码,将会花费非常多的时间
因此,对于初学者或者没有函数式编程背景的程序员,笔者不建议使用lambda表达式,更加不建议使用嵌套lambda表达式,因为实在是看不懂
还有,lambda表达式是潜逃作用域的最大受益者。通过上面的代码可以看见,除了嵌套def之外,lambda也可以具备取得上一层def参数的特性。
总结:这一章节只是简单说明一下嵌套lambda与作用域,还有建议初学者不使用它们,还是老老实实的写多两个函数,这样代码结构更加清晰可维护
这一章节就说到这里,谢谢大家
------------------------------------------------------------------
点击跳转零基础学python-目录
版权声明:本文为博主原创文章,未经博主允许不得转载。
我们在前面的章节已经涉及到一些作用域与lambda表达式,例如:
>>> def test(N): return lambda x:x*N >>> func=test(2) >>> func(2) 4 >>>
上面的代码就是lambda表达获取test的参数N,即便test已经不是激活状态
我们下面将使用纯lambda表达式模拟上面的代码:
>>> y=lambda N:(lambda x:N*x) >>> func=y(2) >>> func(2) 4 >>> func(3) 6 >>>
如果我们再精简一下,得出下面的代码:
>>> (lambda N:(lambda x:N*x))(2)(2) 4 >>> (lambda N:(lambda x:N*x))(2)(3) 6 >>>
虽然代码足够的精简,但是如果不是很懂lambda表达式的程序员维护上面的代码,将会花费非常多的时间
因此,对于初学者或者没有函数式编程背景的程序员,笔者不建议使用lambda表达式,更加不建议使用嵌套lambda表达式,因为实在是看不懂
还有,lambda表达式是潜逃作用域的最大受益者。通过上面的代码可以看见,除了嵌套def之外,lambda也可以具备取得上一层def参数的特性。
总结:这一章节只是简单说明一下嵌套lambda与作用域,还有建议初学者不使用它们,还是老老实实的写多两个函数,这样代码结构更加清晰可维护
这一章节就说到这里,谢谢大家
------------------------------------------------------------------
点击跳转零基础学python-目录
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法
- Python实现的基于ADB的Android远程工具
- 在Redis数据库中实现分布式速率限制的方法
- Python使用RethinkDB总结
- Python,Flex 2和Aptana[js开放工具]
- 国外开发者谈为何放弃PHP而改用Python
- python私有属性和方法实例分析
- 利用webqq协议使用python登录qq发消息源码参考
- python实现rest请求api示例
- python 判断自定义对象类型
- 让python的Cookie.py模块支持冒号做key的方法
- Python 面向对象 成员的访问约束
- 新手该如何学python怎么学好python?
- Python linecache.getline()读取文件中特定一行的脚本
- 使用nodejs、Python写的一个简易HTTP静态文件服务器
- 使用python检测手机QQ在线状态的脚本代码