Fluent-Python-PartI-Prologue

开始Fluent-Python

前言:

Here’s the plan: when someone uses a feature you don’t understand, simply shoot them.

1-The Python Data Model

魔术方法也叫做Dunder方法,一般under-under-getitem-under-under也可以叫做dunder-getitem.

Example 1-1

我们可以通过重写__len__方法与__getitem__方法实现对象的获取书长度,与获取数据。

特殊方法的调用时隐式的,例如for i in x:就隐式的调用了iter(x).

代码中不应该有很多对特殊方法的直接调用,除非你在进行元编程。

Example 1-2

__repr____str__方法类似,但是在打印一个实例的信息时会调用__repr方法。如果没有重写该方法console会显示类似<Vector object at 0x10e100070>的信息。

__str__由str()函数调用,强烈建议重写__repr__如果没有__str__则会调用__repr__.

bool()调用__bool__的结果,如果没有实现__bool__那么会调用__len__如果长度为0则返回False.