文档章节

零基础学python-18.8 嵌套lambda与作用域

raylee2015
 raylee2015
发布于 2015/10/21 08:10
字数 422
阅读 6
收藏 0

这一章节我们来讨论一下嵌套lambda与作用域

我们在前面的章节已经涉及到一些作用域与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-目录

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/raylee2007/article/details/48606847

共有 人打赏支持
raylee2015
粉丝 6
博文 265
码字总数 44224
作品 0
江门
私信 提问
ParisGabriel:Python全栈工程师(0基础到精通)教程 第十五课(函数嵌套、变量作用域)

ParisGabriel 感谢 大家的支持                      每天坚持 一天一篇 点个订阅吧 灰常感谢 当个死粉也阔以                       Python人工智...

ParisGabriel
2018/07/13
0
0
Python全栈工程师(函数嵌套、变量作用域)

ParisGabriel 感谢 大家的支持                      每天坚持 一天一篇 点个订阅吧 灰常感谢 当个死粉也阔以                       Python人工智...

巴黎香榭
2018/07/13
0
0
我和Python的Py交易》》》》》》 命名空间的小弟作用域

命名空间的小弟作用域 在这要明确一个观点,在Python中万物皆对象,而变量指向的就是对象。 变量可以是 类名,函数名,储存数据的变量…… 对象可以是 类 ,被封装的一段代码(函数),数据…...

BarkingPig
2018/08/01
0
0
Python基础总结成千行代码,让Python入门更简单!

只要学会这千行代码,不管你是零基础还是弱基础或是没有接触过编程,都可以快速入门Python!当时我就不信邪啊,等我看完之后,即使作为一个Python老鸟了,还是领会到了很多教授他的独特见解!...

糖宝lsh
2018/09/10
0
0
Python二次元世界-Lisp的帝国斜阳 lambda与closure

Python二次元世界-函数式编程 Function , lambda与closure 本章讲述Python语言自Lisp语言演变而来的一些高级函数编程技巧 如闭包(closure) 匿名函数(lambda) 生成器(yield) 嵌套作用域(ne...

圣何塞白话人
2012/05/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
1
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
2
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
3
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
2
0
深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部