Python面向对象编程(第4版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 创建Python的类

我们不需要写太多的代码就会发现Python是一门非常“简单”的语言。当我们想要做什么的时候,直接做就可以,不需要进行很多的设置。你可能已经看到,著名的“hello world”例子在Python中只需要一行代码即可完成。

类似地,Python 3最简单的类就像这样:

这就是我们的第一个面向对象程序!类定义以class关键字开始,接着是类名(由我们自己确定),最后以冒号结尾。

类名必须遵循标准的Python变量名原则(必须以字母或下画线开头,并只能由字母、下画线或数字组成)。除此之外,Python风格指南(可以在网上搜“PEP 8”)建议类名应该用驼峰命名法CapWords或CamelCase)(以大写字母开头,后续任意单词都以大写字母开头)。

类的定义行后面是类的内容块。与其他的Python代码结构一样,类也使用缩进,而非其他语言中常用的大括号关键字或方括号来分隔。除非你有足够充分的理由(比如配合其他人的代码用制表符作为缩进),否则尽量用4个空格作为缩进。任何好用的代码编辑器都支持将输入的Ta b键替换为4个空格。

由于我们的第一个类实际上并不添加任何数据和行为,因此我们简单地在第2行用pass关键字作为占位符来表示下面没有进一步的动作了。

我们可能觉得这个最基本的类什么都不能做,但是它允许我们创建这个类的实例对象。我们可以将这个类加载到Python 3解释器中,这样就能在交互式解释器中使用它。为了做到这一点,将上面这个类定义的代码保存到名为first_class.py的文件中,执行命令python-i first_class.py。-i参数告诉Python启动交互式解释器并运行那个文件中的代码。下面这个解释器的会话可以说明这个类的一些基本交互操作:

这段代码从这个新类中实例化了两个对象,将对象变量分别命名为a和b。创建类实例很简单,只需要输入类的名字和一对括号。看起来就像一个普通的函数调用,但是Python知道我们调用的是类而不是函数,因此它知道它的任务是创建一个新对象。打印这两个变量,会输出对象的类名及其在内存中的地址。内存地址在Python代码中不常用到,但是在这里,可以证明这是两个不同的对象(因为地址不同)。

使用is运算符,我们可以看到它们是不同的对象:

当我们创建了很多对象并为对象分配了不同的变量名时,这有助于减少混淆。