Python关于函数作为返回值的理解(3分钟就看完了)

话不多说,直接看例子,上代码:

1 def line_conf():
2     def line(x):
3         return 2 * x + 1
4     return line     #return a function object
5 
6 my_line = line_conf()
7 print(my_line(5))

在上面这段代码中,我定义了一个函数line_conf(),这个函数的作用是返回line(注意代码第4行),而line是定义在line_conf()中的函数,即这个函数的作用就是返回一个函数,也就是把函数作为普通的对象进行返回。在理解上述代码之前,我们先看另外一个例子:python中有个函数,名叫 abs,其功能是返回传入参数的绝对值,即abs(10)返回10,abs(-10)返回10。此时如果令 a=abs, 接下来就可以不通过使用abs的名字来调用该函数,而可以直接用a(10)和a(-10)来返回10。怎么理解呢?abs其实也是一个变量名而已,可以把它理解为一个引用,一个指向返回绝对值函数的引用,这个时候如果令任何一个变量=abs,如a=abs,则此时a也作为引用指向了这个函数,即可使用a(10)的方式调用该函数。

再看上面这个例子,代码第6行,通过调用line_conf()函数,返回一个line函数对象,my_line = line_conf() 即让my_line=line,所以代码第7行可以通过使用my_line(5)的方式去调用line函数。

posted @ 2019-01-31 22:01  HeZhengfa  阅读(4711)  评论(0编辑  收藏  举报