美文网首页
8-python中返回函数

8-python中返回函数

作者: mingminy | 来源:发表于2017-12-22 08:52 被阅读0次

Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数!

例如,定义一个函数 f(),我们让它返回一个函数 g,可以这样写:

def f():    print 'call f()...'# 定义函数g:def g():        print 'call g()...'# 返回函数g:return g

仔细观察上面的函数定义,我们在函数 f 内部又定义了一个函数 g。由于函数 g 也是一个对象,函数名 g 就是指向函数 g 的变量,所以,最外层函数 f 可以返回变量 g,也就是函数 g 本身。

调用函数 f,我们会得到 f 返回的一个函数:

>>> x = f()# 调用f()call f()...>>> x# 变量x是f()返回的函数:>>> x()# x指向函数,因此可以调用call g()...# 调用x()就是执行g()函数定义的代码

请注意区分返回函数和返回值:

def myabs():    return abs# 返回函数def myabs2(x):    return abs(x)# 返回函数调用的结果,返回值是一个数值

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

def calc_sum(lst):

return sum(lst)

调用calc_sum()函数时,将立刻计算并得到结果:

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

10

但是,如果返回一个函数,就可以“延迟计算”:

def calc_sum(lst):

def lazy_sum():

return sum(lst)

return lazy_sum

# 调用calc_sum()并没有计算出结果,而是返回函数:

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

>>> f

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

>>> f()

10

由于可以返回函数,我们在后续代码里就可以决定到底要不要调用该函数。

相关文章

  • 8-python中返回函数

    Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数! 例如,定义一个函数 ...

  • 2022-04-16 返回函数

    返回函数的特点 一个函数可以返回一个计算结果,也可以返回一个函数。 返回一个函数时,牢记该函数并未执行,返回函数中...

  • day8-函数笔记(二)/2018-07-25

    函数学习 1.函数的返回值: python中每个函数都是有返回值的,返回值就是return后面的值。如果函数中没有...

  • 08 函数(补充)

    1.函数的返回值 python中每个函数都有返回值,返回值就是return后面的值,如果函数中没有return,那...

  • day8-函数

    1.函数的返回值: python中每个函数都是有返回值的,返回值就是return后面的值。如果函数中没有retur...

  • 函数2

    1.函数的返回值 在python中,每个函数都有返回值。当函数体中存在return语句的时候,返回值为return...

  • 2-3day01函数的返回值

    1.函数的返回值: python中每个函数都是有返回值的,返回值就是return后面的值,如果函数中没有retur...

  • Go基础编程---函数

    函数(无返回值) 函数(有返回值) 函数(有参有返回值) 函数类型 Go中函数也是一种类型,可以通过type 定义...

  • Day7-函数

    1、函数的返回值 1.1 函数的返回值: python 中每个函数都是有返回值的,返回值就是return 后面的值...

  • Python干货-函数式编程之闭包

    返回函数 高阶函数不仅可以返回值,还可以返回一个函数 示例: 上例中的sum_func函数内部另定义一个函数sum...

网友评论

      本文标题:8-python中返回函数

      本文链接:https://www.haomeiwen.com/subject/ijqtgxtx.html