一、内容概要
- 函数式编程:注意不是“函数编程”,多了一个“式”;
- 模块:如何使用模块;
- 面向对象编程:面向对象的概念、属性、方法、继承、多态等;
- 定制类:利用 Python 的特殊方法定制类。
二、学习目标
- 掌握函数式编程;
- 掌握面向对象编程;
- 能够编写模块化的程序。
三、函数式编程
- 什么是函数式编程?
函数:function
函数式:functional ,一种编程范式,是一种抽象计算的编程模式。
函数式编程的特点:(1)把计算视为函数而非指令;
(2)纯函数式编程:不需要变量,没有副作用,测试简单;
(3)支持高阶函数,代码简洁。
Python 支持的函数式编程:(1)不是纯函数式编程:允许有变量;
(2)支持高阶函数:函数也可以作为变量传入;
(3)支持闭包:有了闭包就能返回函数;
(4)有限度地支持匿名函数。
2. 高阶函数
- 变量可以指向函数
例:>>> abs(-10) ==> 10
>>> f = abs #变量 f 指向函数abs()
>>> f(-10) ===> 10 # 效果相同
- 函数名其实就是指向函数的变量
例:>>> abs = len
>>> abs (-10) ===> 报错
>>> abs ( [ 1, 2, 3 ] ) ===> 3
- 高阶函数:能接收函数做参数的函数
变量可以指向函数;
函数的参数可以接收变量;
一个函数可以接收另一个函数作为参数;
能接收函数做参数的函数就是高阶函数。
例1. 定义一个函数,接收 x, y, f 三个参数,其中 x, y 是数值,f 是函数。
>>> def add (x, y, f) :
return f (x) + f (y)
>>> add (-5, 9, abs) ===> 14
例2. 利用 add(x, y, f) 函数,计算:
>>> import math
>>> def add(x, y, f):
return f(x) + f(y)>>> print add(25, 9, math.sqrt)
# 输出结果
8.0