《Python面向对象编程指南》——2.10 总结

简介:

本节书摘来自异步社区《Python面向对象编程指南》一书中的第2章,第2.10节,作者[美]Steven F. Lott, 张心韬 兰亮 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.10 总结

我们已经介绍了许多基本的特殊方法,它们是我们在设计任何类时的基本特性。这些方法已经包含在每个类中,只是它们的默认行为不一定能满足我们的需求。

我们几乎总是需要重载__repr__()、__str__()、和__format__()。这些方法的默认实现不是非常有用。

我们几乎不需要重载__bool__()方法,除非我们想自定义集合。这是第6章“创建容器和集合”的主题。

我们常常需要重载比较运算符和__hash__()方法。默认的实现只适合于比较简单不可变对象,但是不适用于比较可变对象。我们不一定要重写所有的比较运算符,在第8章“装饰器和mixin——横切方面”中,我们会详细介绍functools. total_ordering修饰符。

另外两个较为特殊的方法__new__()和__del__()有更特殊的用途。大多数情况下,使用__new__()来扩展不可变类型。

基本的特殊方法和__init__()方法几乎会出现在我们定义的所有类中。其他的特殊方法则有更特殊的用途,它们分为6个不同的类别。

  • 属性访问:这些特殊方法实现的是表达式中object.attribute的部分,它通常用在一个赋值语句的左操作数以及del语句中。
  • 可调用对象:一个实现了将函数作为参数的特殊方法,很像内置的len()函数。
  • 集合:这些特殊方法实现了集合的很多特性,包括sequence[index]、mapping[index]和set | set。
  • 数字:这些特殊方法提供了算术运算符和比较运算符。我们可以用这些方法扩展Python支持的数值类型。
  • 上下文:有两个特殊方法被我们用来实现可以和with语句一起使用的上下文管理器。
  • 迭代器:有一些特殊方法定义了一个迭代器。没有必要一定要使用这些方法,因为生成器函数很好地实现了这种特性。但是,我们可以了解如何实现自定义的迭代器。
相关文章
|
1月前
|
Python
Python中的面向对象编程与继承
本文将深入探讨Python中面向对象编程的核心概念,重点讨论继承的实现原理以及在实际开发中的应用。通过详细的示例和解释,读者将能够全面理解Python中继承的使用方式和优势,为提高代码的复用性和可维护性提供有效的技术支持。
|
2天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
19天前
|
Python
Python面向对象编程学习应用案例详解
面向对象编程在Python中通过类定义对象结构和行为。示例:1) 使用`class`关键字定义类,如`class Person`;2) `__init__`方法初始化对象属性,如`self.name`和`self.age`;3) 实例化对象,如`person1 = Person("张三", 25)`;4) 访问属性和方法,如`person1.name`;5) 定义类方法,如`def introduce(self)`;6) 调用方法,如`person1.introduce()`;7) 类继承,如`class Student(Person)`;8) 多态,通过继承重写方法实现。
9 1
|
1月前
|
Python
Python面向对象编程简介
Python面向对象编程简介
18 1
|
1月前
|
存储 机器学习/深度学习 数据安全/隐私保护
【Python 基础教程 24】全面入门Python面向对象编程:深度探索与实战教程
【Python 基础教程 24】全面入门Python面向对象编程:深度探索与实战教程
79 0
|
1月前
|
Java 程序员 数据安全/隐私保护
Python教程第6章 | Python面向对象
Python面向对象概念、类的定义和调用、类方法、修改和增加类属性、类和对象、初始化函数、类的继承、类的多态、类的访问控制
44 0
|
1月前
|
存储 Python
Python的面向对象编程(OOP)
Python的面向对象编程(OOP)
15 0
|
1月前
|
存储 Python
python面向对象编程
python面向对象编程
11 0
|
1月前
|
Python
Python中的面向对象编程:基础与实践
Python中的面向对象编程:基础与实践
11 0
|
1月前
|
Python