python中object的方法——魔法方法

正如java有个顶级类Object一样,Object类提供了hashCode equals toString等一系列方法。

那么python中的object也是一样,并且这些方法感觉上会更强大,更灵活。

本文仅做一个总结,方便日后查阅。


  • __slots__ 限制类的属性
  • __len__() 实现了它才能被len()方法调用
  • __str__() 和 __repr__() 前者是print()方法输出对象时调用,后者是在命令行直接对象回车调用
  • __iter__()和__next__() 配合将类变成Iterator
  • __getitem__()和__setitem__(),__delitem__()将类变成 list
  • __getattr__() 当getattr()方法没有找到属性时调用 可以对类中的所有属性和方法进行动态管理
  • __call__() 当直接在对象上(),也就是调用对象时,调用

以上的例子

更多定制类,详见python官方文档

猜你喜欢

转载自blog.csdn.net/qq_21294095/article/details/85126213