9512.net
甜梦文库
当前位置:首页 >> 数学 >>

2-8python中返回函数



python 中返回函数
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() call f()... >>> x

# 调用 f()

# 变量 x 是 f()返回的函数:

<function g at 0x1037bf320> >>> x() # x 指向函数,因此可以调用 # 调用 x()就是执行 g()函数定义的代码

call 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 <function lazy_sum at 0x1037bfaa0>
# 对返回的函数进行调用时,才计算出结果:

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

任务
请编写一个函数 calc_prod(lst),它接收一个 list,返回一个函数,返回函数可以计算参数的乘积。



更多相关文章:
python核心编程第版第8章习题答案
python核心编程第版第8章习题答案_教育学_高等教育_教育专区。python核心编程...为基础编写一个函数, 它 接受一个整数作为参数, 返回该整数所有素数因子列表...
Python 实验8 函数(1)
Python 实验8 函数(1)_计算机软件及应用_IT/计算机_专业资料。实验 8 函数(一)实验目的: 1、 理解自定义函数过程定义和调用方法; 2、 掌握自定义函数的定义...
python多个返回
演示了 C++程序如何调用 python 中函数,并得到从 python 函数中返回的多 个...2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17...
python常用函数
python常用函数_数学_自然科学_专业资料。1.map()函数 map()是 Python 内置的...例如,对于 list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把 list ...
2-10python中匿名函数
python 中匿名函数高阶函数可以接收函数做参数,有些时候,我们不需要显式地定义...函数: >>>map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, ...
python返回
(pModule, "TestDict"); //Add:Python 文件中的函数 名 //获取 Person 类...python 代码 [python] view plaincopyprint? 1. 2. 3. 4. 5. 6. 7. 8...
python threading获取线程函数返回
python threading获取线程函数返回值_计算机软件及应用_IT/计算机_专业资料。python...封装线程操作的基本方法,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14...
python一些常用方法
Python 列表操作的函数和方法 列表操作包含以下函数: 1、cmp(list1, list2):...(obj):移除列表中某个值的第一个匹配项 8、list.reverse():反向列表中元素 ...
2-3python函数作为参数
2-3python函数作为参数_数学_自然科学_专业资料。...传入,如果 f 传入其他函数,就可以得到不同的返回值...八年级数学变量与函数2 暂无评价 12页 免费 ©...
Python内建函数
Python 学习,内建函数是你必须要掌握一部分: 1. abs(x) abs()函数返回...+2j >>>b=4.3e10 >>>coerce(a,b) ((1+2j),(43000000000+0j)) 8 ...
更多相关标签:

All rights reserved Powered by 甜梦文库 9512.net

copyright ©right 2010-2021。
甜梦文库内容来自网络,如有侵犯请联系客服。zhit325@126.com|网站地图