首先,要记住一点,python里面,万物皆对象,就连函数也不例外,这和C++、C#是不一样的。
和C#一样,所有的对象的基类都是object。看下面的例子:
def func(): print "i am a function" return print isinstance(func, object)
执行结果:
True
后面就可以把函数“当做”变量来使用,可以作为函数的返回值、函数的参数(当然在C++和C#里面也有相似的用法)
作为函数参数请看下面的代码:
def fun1(): print "fun1 action" return def fun2(): print "fun2 action" return def bar(fun): fun() return bar(fun1)#fun1是一个函数名 bar(fun2)#fun2是一个函数名
执行结果:
fun1 action
fun2 action
C#有委托,C++有函数指针,强大的python当然也有类似的神器,而且比他们的使用简单一百倍,请看下面的例子:
def func(a,b): print a+b return myPlus=func#定义一个变量指向func函数 myPlus(1,5)
执行结果:
6