Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26267506
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Python/Ruby

2010-04-17 11:11:03

lambda使用

Python 支持一种有趣的语法,它允许你快速定义单行的最小函数。这些叫做 lambda 的函数。

笔记:经常看到有些好的开源代码中会使用到这个函数的故整理出来学习下

示例:

g = lambda a:a*2

print g(2)

笔记:这个匿名函数中没有函数名。没有return关键字。只是参数与函数体

在参数列表周围没有括号,而且忽略了 return 关键字 (隐含存在,因为整个函数只有一行)。而且,该函数没有函数名称,但是可以将它赋值给一个变量进行调用。

总的来说,lambda 函数可以接收任意多个参数 (包括) 并且返回单个表达式的值。lambda 函数不能包含命令,包含的表达式不能超过一个。不要试图向 lambda 函数中塞入太多的东西;如果你需要更复杂的东西,应该定义一个普通函数,然后想让它多长就多长。

笔记:

1、   lambda中可以接受任意多个参数。

2、   返回单个表达式的值

lambda 函数是一种风格问题。不一定非要使用它们;任何能够使用它们的地方,都可以定义一个单独的普通函数来进行替换。我将它们用在需要封装特殊的、非重用代码 上,避免令我的代码充斥着大量单行函数。

 

示例:

s = "this   is\na\ttest"

s1 = lambda s: " ".join(s.split())

print s1(s)

 

 

阅读(537) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~