deck[0]或者deck[1]是通过__getitem__来实现的
迭代通常是隐式的,如果一个集合类型没有实现__contains__方法,那么in会进行一次顺序迭代搜索
abs是一个内置函数,如果输入的是整数或者是浮点数,他返回输入值的绝对值。如果输入值是复数,返回它的模
python有一个内置的repr函数,把一个对象以字符串的形式打印出来以方便辨认,字符串表示形式
__repr__和__str__的区别在于,后者是在函数中被使用,或是在print函数中打印一个对象的时候才被调用,并且返回的字符串对终端用户更加友好,__repr__是更好的选择,如果一个对象没有__str__函数,解释器会调用__repr函数作为替代。
__add__和__mul__这两个方法返回值都是重新创建的向量对象,被操作的两个对象依然原封不动,代码只是读取了他们的值而已
默认情况下,我们调用bool来将自己定义的类转换为布尔值总是被判定为True,除非自定义__bool__,如果没有,就会调用__len__方法,如果返回0,则为False
为什么len不是普通方法
如果x是一个内置的对象实例,那么len(x)调用的速度会非常快,因为CPython会直接从一个C结构体中读取对象的长度,完全不会调用任何方法。