码迷,mamicode.com
首页 > 其他好文 > 详细

函数式编程

时间:2018-01-03 11:39:15      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:函数式编程

# -*- coding:utf-8-*- #---函数式编程 #-------高阶函数------ #变量可以指向函数 print abs(-10);  #10 内置的求绝对值的函数 print abs;    #<built-in function abs>   函数本身 #我们可以把函数赋给变量,即变量能够指向函数 s = abs; print s;  #<built-in function abs>  没有问题 print s(-10); #10 可以使用 #----变量名也是函数 ''' abs = 10; print abs;  #10 print abs(-10); #报错 一般不会用函数名当变量名,此时要恢复abs,重启python交互环境 我这里注掉 ''' #--传入函数 #上面看到变量可以指向函数,函数参数也能接收变量,那么一个函数也可以就收另一个函数作为参数,称为告诫函数 def add(x,y,f):     return f(x)+f(y); print add(-5,7,abs);  #12  5的绝对值+7的绝对值 #函数作为返回值 #求和 def sum(*args):     x = 0;     for i in args:         x = x+i;     return x; print sum(1,3,5); #9 #----------------------------- def lazy_sum(*args):     def sum():         x = 0;         for i in args:             x = x + i;         return x;     return sum; s = lazy_sum(1,2); print s;   #<function sum at 0x0000000005015668>  返回函数 print s();  #调用s返回结果 #------------------------------------------------------------------------ #------匿名函数 #不显示的定义函数,直接传入匿名函数 lambda是匿名函数的关键字 box=(map(lambda x:x*x,[1,2,3])); print box;  #[1, 4, 9] ''' lambda x:x*x 即 def f(x):    return x * x 关键字lambda冒号前是函数参数,后是表达式 限制:只能写一个表达式,不用写return,返回值是表达式的结果 好处:函数没有名字,不必担心函数名冲突。匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再用      变量来调用该函数 ''' f = lambda x :x * x print f;   #<function <lambda> at 0x00000000057A56D8> print f(4);  #16 #--匿名函数当返回值 def cj(x,y):     return lambda :x * x + y *y s = cj(1,2); print s; #<function <lambda> at 0x0000000004D157B8> print s();  #5 #----


函数式编程

标签:函数式编程

原文地址:http://blog.51cto.com/11927232/2056890

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!