python:第一类对象lambda
Python 中的 procedures 特点
-
- 可以当作变量的值存储
-
- 可以作为另一个procedures的形参传入
-
- 可以作为procedures的返回值返回
==》第一类对象
- 可以作为procedures的返回值返回
lambda 表达式
lambda <var1>, ..., <varn>:<expr>
参数:<var1>, ..., <varn>
主体:<expr>
特点:表达式的值会被当作返回值,不需要自己写return
>>> f=lambda x: x*x
>>> f
<function <lambda> at 0x000001CC294B9820>
>>> f(4)
16
>>> g=lambda x,y : x*y
>>> g(3,4)
12
>>>
procedures 可以作为变量的值储存
定义一个存放 procedure 的数组。
>>> procs = [lambda x: x, lambda x: x+1, lambda x: x+2]
>>> procs[0]
<function <lambda> at 0x000001CC294B9790>
>>> procs[1](6)
7
>>> procs[2](3)
5
>>>
procedures 可以为变量赋值
>>> procs = [lambda x: x, lambda x: x+1, lambda x: x+2]
>>> fuzz=procs[2]
>>> fuzz(3)
5
>>>
>>> def thing(a):
return a*a
>>> thing(3)
9
>>> thang = thing
>>> thang(3)
9
>>>
将 procedure 作为形参传入 procedure
>>> def square(x):
return x*x
>>> def squaretwice(x):
return squaretwice(square(x))
>>> def doTwice(f,x):
return f(f(x))
>>> doTwice(square,2)
16
>>>