从C#到Python:3 函数及函数编程
2010-09-30 22:42:07 来源:WEB开发网输出
$ python func_doc.py
5 is maximum
Prints the maximum of two numbers.
The two values must be integers.
在上述函数中,第一个逻辑行的字符串是这个函数的文档字符串。文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述,描述对象的调用方法、参数说明、返回值等具体信息。
可以使用__doc__(注意双下划线)调用printMax函数的文档字符串属性(属于函数的名称,请记住Python把每一样东西都作为对象,包括这个函数)。它等同于用Python的内建函数help()读取函数的说明。很多Python的IDE也依赖于函数的文档字符串进行代码的智能提示,因此我们在编写函数时应养成编写文档字符串的习惯。
3.4 函数编程
Python中加入了一些在函数编程语言和Lisp中常见的功能,如匿名函数、高阶函数及列表内涵等,关于最后一个问题我在《2 运算符、表达式和流程控制》已经介绍过了,本章只介绍匿名函数和高阶函数。
3.4.1 匿名函数
lambda函数是匿名函数,用来定义没有名字的函数对象。在Python 中,lambda只能包含表达式:lambda arg1, arg2 ... : expression。lambda 关键字后就是逗号分隔的形参列表,冒号后面是一个表达式,表达式求值的结果为lambda的返回值。
虽然lambda的滥用会严重影响代码可读性,不过在适当的时候使用一下lambda 来减少键盘的敲击还是有其实际意义的,比如做排序的时候,使用data.sort(key=lambda o:o.year)显然比
1 def get_year(o):
2 return o.year
3 func=get_year(o)
4 data.sort(key=func)
要方便许多。(引自《可爱的Python》)
更多精彩
赞助商链接