返回介绍

第 9 章 符合 Python 风格的对象

发布于 2024-02-05 21:59:47 字数 810 浏览 0 评论 0 收藏 0

绝对不要使用两个前导下划线,这是很烦人的自私行为。1

——Ian Bicking
pip、virtualenv 和 Paste 等项目的创建者

1摘自 Paste 的风格指南

得益于 Python 数据模型,自定义类型的行为可以像内置类型那样自然。实现如此自然的行为,靠的不是继承,而是鸭子类型(duck typing):我们只需按照预定行为实现对象所需的方法即可。

前一章分析了很多内置对象的结构和行为,这一章则自己定义类,而且让类的行为跟真正的 Python 对象一样。

这一章接续第 1 章,说明如何实现在很多 Python 类型中常见的特殊方法。

本章包含以下话题:

支持用于生成对象其他表示形式的内置函数(如 repr()、bytes(),等等)

使用一个类方法实现备选构造方法

扩展内置的 format() 函数和 str.format() 方法使用的格式微语言

实现只读属性

把对象变为可散列的,以便在集合中及作为 dict 的键使用

利用 __slots__ 节省内存

我们将开发一个简单的二维欧几里得向量类型,在这个过程中涵盖上述全部话题。

在实现这个类型的中间阶段,我们会讨论两个概念:

如何以及何时使用 @classmethod 和 @staticmethod 装饰器

Python 的私有属性和受保护属性的用法、约定和局限

我们从对象表示形式函数开始。

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

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

发布评论

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