python支持返回函数的实例解析


本文摘自php中文网,作者零到壹度,侵删。

这篇文章主要介绍了python支持返回函数的实例解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

最近接触python,看到了python中返回函数的概念,以前只接触过函数返回值,比如python就可以返回int,str,list,dict等等类型数据,这里要说的是python还支持返回函数。

首先看看python支持返回函数的基本语法

1

2

3

4

5

6

7

def f():

    print 'call f()...'

    # 定义函数g:

    def g():

        print 'call g()...'

    # 返回函数g:

    return g

这里,最外层的函数f会返回一个函数g,也就是函数g本身;
下面看看函数调用的过程;(接上面)

1

2

>>> x = f()   # 调用f()call f()...>>> x   # 变量x就是上面一个最外层函数返回的函数(不是函数值)<function g at 0x1037bf320>

>>> x()   # x指向函数,因此可以调用,这里就是调用内层函数x()的过程call g()...   # 调用x()就是执行g()函数定义的代码

  • 只返回函数的作用:
    返回函数可以把一些计算延迟执行。例如,如果定义一个普通的求和函数:

1

2

3

def calc_sum(lst):

    return sum(lst)

>>>calc_sum([1,2,3,4])

结果直接是:10

但是,可以通过返回函数思想写代码,就可以“延时计算”

1

2

3

def calc_sum(lst):

    def lazy_sum():

        return sum(lst)    return lazy_sum

下面是调用:
注意,下面代码并没有对函数进行执行计算出结果,而是返回函数。

1

2

3

>>> f = calc_sum([1, 2, 3, 4])

>>> f

<function lazy_sum at 0x1037bfaa0>

对返回的函数进行调用时,才计算出结果

1

>>>f()10

下面是一个例子:
请编写一个函数calc_prod(lst),它接收一个list,返回一个函数,返回函数可以计算参数的乘积。
思想:先定义能计算乘积的函数,再将此函数返回。

1

2

3

4

5

6

7

8

9

def calc_prod(lst):

    def lazy_prod():

        def f(x,y):

            return x*y       

        return  reduce(f,lst,1)   

return lazy_prod

 

f = calc_prod([1, 2, 3, 4])

print f()

相关推荐:

返回函数

python返回函数/函数编程

关于函数返回值的几种情况

以上就是python支持返回函数的实例解析的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python 读取图片文件为矩阵和保存矩阵为图片的方法

Python怎么调用idle

如何用Python计算基本统计值?

Python如何定义分段函数

Python如何求出输入数的阶乘

Python实现连接数据库的方法介绍

如何用Python代码温度转换?

Python安装库安装失败怎么解决

Python什么是递归?两种优先搜索算法的实现 (代码示例)

Python中迭代器生成器的实例详解

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...