1. 程式人生 > >python中object的方法——魔法方法

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官方文件