函数是高级程序语言设计不可缺少的一部分,现在就来看看python中的函数。
一、函数的调用:
首先,python中有很多内置函数,可以供我们直接调用。(详细参见:https://docs.python.org/2/library/functions.html#abs)
如果想知道一个内置函数的使用方法,可以在交互环境中使用help()来查看。例如:
>>>> help(abs)
Help on built-in function abs in module __builtin__:
abs(...)
abs(number) -> number
Return the absolute value of the argument.
调用一个函数,需要注意两点——函数的名称和参数(包括参数的数量,类型等)
二、函数的定义:
python中使用def语句进行函数的定义,下面就是一个打印1的函数:
def f1():
print 1;
f1()
而对于参数的定义与调用,下面这个例子可以清楚的看到:
def f2(a):
print a;
f2(1)
f2("abc")
输出为1和abc。
这就有点类似于java语言的重载,但是在java中的重载十分复杂而且啰嗦,要写很多的同名函数来实现重载的特点,而在python中则非常简约!
简约的代码一直是python所追求的,记住,是简约而不是简单!
多个参数的传递则还要啊注意参数的顺序:
def f3(a=1,b=2,c=3):
print "a =%d"%a,"b =%d"%b,"c =%d"%c
f3(4,5,6)
f3(4)
f3(4,5)
得到输出为:
a =4 b =5 c =6
a =4 b =2 c =3
a =4 b =5 c =3
如果a要默认等于1,则可以这样赋值:
def f3(a=1,b=2,c=3):
print "a =%d"%a,"b =%d"%b,"c =%d"%c
f3(b=5,c=6)
f3(b=5)
输出:
a =1 b =5 c =6
a =1 b =5 c =3
而怎样修改自定义函数,才能在help()的时候查看到该函数的文档呢?那就是用前面提到的三引号来进行注释。例如:
>>>> def f3(a=1,b=2,c=3):
... """ this is f3"""
... print "a =%d"%a,"b =%d"%b,"c =%d"%c
... f3(b=5,c=6)
... f3(b=5)
...
>>> help(f3)
Help on function f3 in module __main__:
f3(a=1, b=2, c=3)
this is f3
定义函数需要有返回值的情况,也是用return来返回。例如修改上面的f3()后得到:
def f3(a=1,b=2,c=3):
print "a =%d"%a,"b =%d"%b,"c =%d"%c
return a
print f3(a=4,b=5,c=6)
输出:
a =4 b =5 c =6
4
最后,python中也可以定义空函数,可以用pass语句。pass语句什么都不做,往往在程序编写的时候用做占位符,还未想好怎么写的函数先用pass进行占位。
拓展资料:闭包的概念在很多语言中都有涉及,python中也有闭包的概念,通常在函数式编程中使用。
那么,什么是闭包,什么是函数式编程呢?
参见两篇文章:
大名鼎鼎的函数式编程初探:http://www.ruanyifeng.com/blog/2012/04/functional_programming.html
闭包的讲解:http://blog.csdn.net/marty_fu/article/details/7679297