WEB开发网
开发学院软件开发C语言 从C#到Python:3 函数及函数编程 阅读

从C#到Python:3 函数及函数编程

 2010-09-30 22:42:07 来源:WEB开发网   
核心提示: 12#coding:utf-834defmap_func(lis):5returnlis+167deffilter_func(li):8ifli%2==0:9returnTrue10else:11returnFalse1213defreduce_func(li,lis):14returnli+l

 1 
 2  #coding:utf-8
 3  
 4  def map_func(lis):
 5   return lis + 1
 6 
 7  def filter_func(li):
 8   if li % 2 == 0:
 9     return True
10   else:
11     return False
12     
13  def reduce_func(li, lis):
14   return li + lis
15   
16 li = [1,2,3,4,5]
17 
18 map_l = map(map_func, li)       #将li中所有的数都+1
19  filter_l = filter(filter_func, li)  #得到li中能被2整除的
20  reduce_l = reduce(reduce_func, li)  #1+2+3+4+5
21  
22  print map_l
23  print filter_l
24  print reduce_l

运行结果如下:

C:\>python test1.py

[2, 3, 4, 5, 6]

[2, 4]

15

3.29更新:根据JeffreyZhao提示,C#可以用委托实现函数编程的大部分功能。不过说实话我没这么用过,因为是接触了Python后才有的函数编程概念,以前用C#写程序就压根没有函数编程思想,虽然知道"委托允许将方法作为参数进行传递"。但具体细节估计各位C#高手比我要清楚得多,我就不乱写了。

3.5  小结

本章讨论了Python中函数的定义和使用方法,要点如下:

(1) Python用def关键字、函数名、括号、参数(可选)及冒号定义函数(要记得函数体缩进呀),函数可以有0、1或多个返回值;

(2) Python定义函数不需要(也不能)指定参数类型,它天生就是泛型的;

(3) Python支持(单独或同时使用)普通参数、关键字参数、元组参数和字典参数四种类型的参数,请学会灵活使用它们;

(4) 文档字符串(Docstrings)用于对Python的函数提供注释,供自省函数及IDE调用;

(5) lambda关键字用来定义匿名函数,它仅支持表达式,某些情况下可以简化代码编写量,但不要滥用;

(6) Python通过map、filter、reduce三个内置函数实现函数编程中映射、过滤及合并三类高阶函数功能,但注意map和filter可以用列表内涵替代(参见第2章)。

上一页  2 3 4 5 6 7 

Tags:Python 函数 函数

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接