Python学习笔记之高阶函数

高阶函数英文叫 Higher-order function。
先来回顾一下 C 语言中指向函数的指针。如果在程序中定义了一个函数,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址(又称入口地址)成为这个函数的指针。可以定义一个指向函数的指针变量,用来存放某一函数的起始地址,这就是指向函数的指针。定义指向函数的指针变量的一般形式为:

类型名 (* 指针变量名)(函数参数列表)

下面代码展示如何使用指向函数的指针:

// 使用函数名和指向函数的指针调用同一函数
#include <stdio.h>
int max(int x, int y) {
    if (x >= y)
        return x;
    else
        return y;
}

int mian() {
    int (* p)(int, int);
    p = max;
    int a = 5, b = 7, c, d;
    c = max(a, b);
    d = (* p)(a, b);
    printf("a=%d, b=%d, max_c=%d\n", a, b, c);
    printf("a=%d, b=%d, max_d=%d\n", a, b, d);
}

// 结果如下
// a=5, b=7, max_c=7
// a=5, b=7, max_d=7

现在回到 Python 的高阶函数。Python 也能和上述 C 语言中一样使用别的变量名调用函数,具体代码如下:

# 使用函数名和别的变量名调用同一函数
def maxN(x, y):
    if x >= y:
        return x
    else:
        return y


p = maxN
print(maxN(5, 7))
print(p(5, 7))

# 结果如下
# 7
# 7

有了上面的铺垫,下面引出高阶函数的定义:
我们知道,变量可以指向函数,而函数的参数能够接收变量,那么将一个指向函数(A)的变量传入另一个函数(B)的参数,这个函数(B)就称之为高阶函数。
下面举个高阶函数的应用例子,更深刻的理解高阶函数:

# 高阶函数的应用例子
def add(x, y, f):
    return f(x) + f(y)


print(add(-5, 6, abs))

# 结果如下
# 11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值