上一篇:python函数笔记
本文内容:
python中高阶函数的介绍与使用
一般的,以下三种情况的函数称为高阶函数.
1.一个函数作为另一个函数的参数
2.一个函数作为另一个函数的返回值
3.函数里面再定义一个函数
一个函数的函数名和变量类似,函数名代表着这个函数,它可以进行赋值操作。在函数名后面加一对括号表示对这个函数进行调用。e.g.:计算代码执行时间
def cal_time(fn):
print(fn) #
start = time.time()
fn()
end = time.time()
print('代码运行耗时{}秒'.format(end - start))
def add():
sum = 0
for i in range(1,100000000):
sum += i
print('sum = {}'.format(sum))
print(add) #
cal_time(add)
"""
执行过程:
1.调用cal_time函数,并将实参add赋值给形参fn,add是我们定义的函数,它的值是一个地址。
2.赋值后的形参fn == add 此时 fn() == add()
3.在cal_time函数中执行了fn(),相当于执行了 add()
4.函数执行后得到:
sum = 4999999950000000
代码运行耗时5.938243389129639秒
"""
# 2.一个函数作为另一个函数的返回值
def foo():
print('我是foo,我被调用了')
return 'foo'
def bar():
print('我是 bar,我被调用了')
return foo
x = bar()
print('x的值为:',x) #
bar()() #调用了foo() 此时,x() == bar()()
# 3.函数里面再定义一个函数
def outer():
m = 10
def inner():
n = 90
print('我是inner函数')
print('我是outer函数')
return inner
# outer()
outer()() #首先执行outer(),然后执行inner()
在python的内置函数中也有一些高阶函数,列如: map/reduce, filter, sorted。
这些函数已经在上一篇中提到过,在此就不再叙述!