- 深度学习程序设计实战
- 方林 陈海波编著
- 527字
- 2025-02-25 14:02:53
1.4 结束语
本章着重介绍了自顶向下、递归和面向对象3种程序设计方法。其中前两者的实质相同,都是对问题分解的实现方法。只不过自顶向下是把原问题分解为若干子问题,子问题又进一步分解为它自己的子问题,以此类推。而递归则是把原问题分解为规模小一点、参数更靠近边界的原问题。
除了直接递归以外,还有间接递归。例如a()函数调用b()函数,而b()函数又调用a()函数。其核心思想仍然是数学归纳法的三部曲。
面向对象的程序设计方法则不同,它的核心是继承,而继承的目的是重用代码。我们在这一章通过几个例子简单地实验了一遍与继承紧密相关的成员函数重定义。可以看到,通过重定义,我们自己定义的分数类也能直接使用Python提供的各种运算,甚至连优先级都不用操心。我们将在下面的章节中继续通过实例帮助大家理解面向对象程序设计方法的实质。
[1] 我们假定您对面向对象方法有一定了解,知道封装、继承、构造函数、成员变量、成员函数、静态函数、多态、重定义等概念。如果并不太清楚这些概念,建议先学习面向对象方法和Python语言之后再来学习本书,这样效果会更好。
[2] Python虽然不支持重载,但它支持参数列表和参数字典。这使得我们可以用不同的参数组合调用同一个函数。
[3] 有的教程称为重写。
[4] 这就是函数名称__radd__中第一个字母r的来由。