正如java有个顶级类Object一样,Object类提供了hashCode equals toString等一系列方法。
那么python中的object也是一样,并且这些方法感觉上会更强大,更灵活。
本文仅做一个总结,方便日后查阅。
- __slots__ 限制类的属性
- __len__() 实现了它才能被len()方法调用
- __str__() 和 __repr__() 前者是print()方法输出对象时调用,后者是在命令行直接对象回车调用
- __iter__()和__next__() 配合将类变成Iterator
- __getitem__()和__setitem__(),__delitem__()将类变成 list
- __getattr__() 当getattr()方法没有找到属性时调用 可以对类中的所有属性和方法进行动态管理
- __call__() 当直接在对象上(),也就是调用对象时,调用