分割线一、本节整体思路大纲核心前提Python 里函数也是数据变量可以存函数函数名本身就是变量核心概念高阶函数定义能接收另一个函数当作参数的函数核心逻辑链变量指向函数 → 函数名是变量 → 函数可以当参数传递 → 诞生高阶函数小案例自定义add高阶函数实战二、知识点详情 逐段通俗解释 代码实例1. 关键前提 1变量可以指向函数通俗理解abs(-10)加括号 执行函数拿到结果abs不加括号 函数本身就像一个数据Python 允许把「整个函数」赋值给一个变量后续用变量就能调用函数代码实例# 1. 加括号调用函数返回计算结果 print(abs(-10)) # 2. 不加括号单纯表示函数本身 print(abs) # 3. 把函数赋值给变量 f f abs # 4. 通过变量 f 调用原 abs 函数 print(f(-10))执行流程f abs→ 变量f绑定了绝对值函数f(-10)→ 本质就是abs(-10)2. 关键前提 2函数名本质就是变量通俗理解abs、print这些函数名本质就是普通变量只是默认绑定了官方功能。如果强行给函数名赋值其他数据它就不再是函数了。代码实例# 原本正常使用 print(abs(-20)) # 强行把 abs 改成整数 10 abs 10 # 报错整数不能被调用 # print(abs(-20))报错原因abs原本指向函数现在被改成整数10加括号abs()想执行但是数字不能执行所以报错。恢复方法关闭当前终端重新打开 Python 即可。3. 核心重点什么是高阶函数官方定义如果一个函数的参数可以接收另一个函数它就是高阶函数。小白人话普通函数参数只传数字、字符串、列表高阶函数厉害在可以传一个函数进去当工具使用。经典实例原文核心案例# 定义高阶函数第三个参数 f 专门用来接收函数 def add(x, y, f): # 先用 f 处理 x、y再相加 return f(x) f(y) # 调用把 abs 函数传进去 res add(-5, 6, abs) print(res)一步步拆解执行流程调用add(-5, 6, abs)x -5y 6f absf 变成了绝对值函数执行f(x)→abs(-5) 5执行f(y)→abs(6) 6相加5 6 11return 返回结果4. 本节最终小结必背不加括号 函数本身可以赋值给变量函数名是特殊变量可以被重新赋值接收函数作为参数的函数 高阶函数高阶函数是函数式编程的基础。三、配套练习题由浅入深巩固知识点练习 1 基础题仿照案例写一个高阶函数定义一个函数calc(a, b, func)传入max函数计算两个数的最大值。#❌️ # ### 练习 1 基础题 # 仿照案例写一个高阶函数 # 定义一个函数 calc(a, b, func) def calc(a, b, max): if a b: maxa elif b a: maxb return max # 传入 max 函数计算两个数的最大值。 print(calc(1,2,max)) #✅️ def calc(a,b,func):#定义函数以函数作为参数 return func(a,b) print(calc(1,2,max))#调用函数点击查看答案def calc(a, b, func): return func(a, b) result calc(18, 25, max) print(result)练习 2 理解题判断对错abs是函数abs()是函数调用 变量不能指向函数 高阶函数一定需要传入函数参数 点击查看答案✅ 对❌ 错✅ 对练习 3 进阶题自定义高阶函数传入min函数求-9和3的最小值之和。点击查看答案def add_num(m, n, f): return f(m, n) print(add_num(-9, 3, min))练习 4需求定义高阶函数demo(x, y, f)传入内置max计算15和7的最大值def demo(x,y,f): return f(x,y) print(demo(15,7,max))练习 5仿照上面格式定义高阶函数fun(m, n, f)传入min计算-20 和 8的最小值def fun(m,n,f): return f(m,n) print(fun(-20,8,min))练习 6回归课本原版题型仿照廖雪峰add例子定义函数add_num(x, y, f)传入abs计算-12 和 9 分别取绝对值之后相加def add_num(x,y,f): return f(x)f(y) print(add_num(-12,9,abs))练习 7自定义高阶函数用abs分别处理-30和25再求和def test(m,n,f): return f(m)f(n) print(test(-30,25,abs))分割线