在上面的例子中,我们并没有在方法中加入任何实际代码,只有一些注释来解释这些方法要做什么。这是一种未雨绸缪的方法,是对以后要增加的内容提前做出计划或提前考虑。具体的代码要取决于游戏如何工作。程序员编写比较复杂的代码时通常就会采用这种做法来组织他们的想法。“空”函数或方法称为代码桩(code stub)。
如果想运行前面的例子,会得到一条错误消息,因为函数定义不能为空。
没错,卡特,不过注释不起作用,因为它们只是给你读的,而不是让计算机来执行。
如果希望建立一个代码桩,可以使用 Python 的 pass
关键字作为一个占位符。代码实际上应该像下面这样:
我不打算再在这一章中给出使用对象、多态和继承的更详细的例子。学习这本书后面的内容时还会看到很多关于对象以及如何使用对象的例子。通过在实际的程序(比如游戏)中使用对象,你会有更深入的理解。
你学到了什么
在这一章,你学到了以下内容。
什么是对象。
属性和方法。
什么是类。
创建类的一个实例。
特殊方法:
__init__
和__str__
。多态。
继承。
代码桩。
测试题
1. 定义一个新的对象类型时用什么关键字?
2. 什么是属性?
3. 什么是方法?
4. 类和实例之间有什么区别?
5. 方法中实例引用通常用什么名字?
6. 什么是多态?
7. 什么是继承?
动手试一试
1. 为 BankAccount
建立一个类定义。它应该有一些属性,包括账户名(一个字符串)、账号(一个字符串或整数)和余额(一个浮点数),另外还要有一些方法显示余额、存钱和取钱。
2. 建立一个可以挣利息的类,名为 InterestAccount
。这应当是 BankAccount
的一个子类(所以会继承 BankAccount
的属性和方法)。InterestAccount
还应当有一个对应利息率的属性,另外有一个方法来增加利息。为了力求简单,假设每年会调用一次 addInterest
方法计算利息并更新余额。