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语句、函数与方法使用技巧总结
#!/usr/bin/env python # -*- coding: utf-8 -*lst = [1, 2, 3, ...fget 是获取属性的值的函数,fset 是设置属性值的函数,fdel 是删除属性的函 数...
python2.72内置函数手册
python2.72内置函数手册_计算机软件及应用_IT/计算机_专业资料。Python2.72 ...48.八进制字符串的转化 oct(x) Convert an integer number (of any size) ...
python 列表函数=
2 python 列表函数 list 函数:功能:将字符创转化为列表,例: 列表基本函数: 1...例: 7.insert 函数功能:将元素插入到列表指定位置。例: 8.pop 函数功能:...
python常用函数
python常用函数_数学_自然科学_专业资料。1.map()函数 map()是 Python 内置的...例如,对于 list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把 list ...
python中math模块函数
python中math模块函数_数学_自然科学_专业资料。python中math模块函数介绍Python...(0.8125,1) math.frexp([2,5]) 結果 7 math.fsum(x) 返回 如果 x =...
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 实验8 函数(1)
Python 实验8 函数(1)_计算机软件及应用_IT/计算机_专业资料。实验 8 函数(一)实验目的: 1、 理解自定义函数过程定义和调用方法; 2、 掌握自定义函数的定义...
Python 函数
不带表达式的 return 相当于返回 None。 语法: 1 def functionname( parameters.../usr/bin/env python 2 # -*- coding: UTF-8 -*3 4 5 # 定义函数 6...
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|网站地图