返回介绍

第26章 类代码编写基础

发布于 2024-01-29 22:24:15 字数 1131 浏览 0 评论 0 收藏 0

既然我们已经抽象地学习了OOP,接下来要看的是怎样转换为实际的代码。本章介绍Python中类模型的语法细节。

如果过去没用过OOP,若是囫囵吞枣的话,类看起来就有些复杂。为了更容易接受类的编写方法,本章要先看一些实际应用中的基本的类,从而可详细探讨OOP。我们要在本书这一部分后续章节扩展这里介绍的细节,但是就基本形式而言,Python的类是很容易理解的。

类有三个主要的不同之处。从最底层来看,类几乎就是命名空间,很像第5部分研究过的模块。但是,和模块不同的是,类也支持多个对象的产生、命名空间继承以及运算符重载。让我们逐一探索这三种不同之处,开始我们学习class语句之旅吧。

类产生多个实例对象

要了解多个对象的概念是如何工作的,得先了解Python的OOP模型中的两种对象:类对象和实例对象。类对象提供默认行为,是实例对象的工厂。实例对象是程序处理的实际对象:各自都有独立的命名空间,但是继承(可自动存取)创建该实例的类中的变量名。类对象来自于语句,而实例来自于调用。每次调用一个类,就会得到这个类的新的实例。

这种对象生成的概念和我们在本书至今所见的其他任何程序架构有着很大的不同。实际上,类是产生多个实例的工厂。反之,每个模块只有一个副本会导入某一个程序中(事实上,我们必须调用reload来更新单个模块对象,反映出来对该模块的修改,这就是原因之一)。

下面就是Python OOP本质的简介。正如我们将看到的,从某种程度上来说,Python的类和def及模块很相似,但是它和在其他语言中用过的相比可能就大不相同了。

类对象提供默认行为

执行class语句,就会得到类对象。以下是Python类主要特性的要点。

·class语句创建类对象并将其赋值给变量名。就像函数def语句,Python class语句也是可执行语句。执行时,会产生新的类对象,并将其赋值给class头部的变量名。此外,就像def应用,class语句一般是在其所在文件导入时执行的。

·class语句内的赋值语句会创建类的属性。就像模块文件一样,class语句内的顶层的赋值语句(不是在def之内)会产生类对象中的属性。从技术角度来讲,class语句的作用域会变成类对象的属性的命名空间,就像模块的全局作用域一样。执行class语句后,类的属性可由变量名点号运算获取object.name。

·类属性提供对象的状态和行为。类对象的属性记录状态信息和行为,可由这个类所创建的所有实例共享。位于类中的函数def语句会生成方法,方法将会处理实例。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文