1.类的对象(P)使用了P[item],__getitem__被调用,返回值就是getitem中return 的值
2.__str__和__repr__的区别是,前者在使用str()或者打印对象的时候才调用,并且返回的字符串对终端用户更友好,后者方便调试和记录日志
3.bool(x)的背后就是调用了x.__boll__()的结果,如果没有__boll__方法,那么bool(x)会尝试调用x.__length__(),如果为0就是false
4.列表推导可以帮助我们把一个序列或是其他可迭代类型中的元素过滤或是加工,然后再新建一个列表。Python 内置的 filter 和 map 函数组合起来也能达到这一效果,但是可读性上打了不小的折扣。
5.可以用 * 运算符把一个可迭代对象拆开作为函数的参数:
>>> divmod(20, 8)
(2, 4)
>>> t = (20, 8)
>>> divmod(*t)
(2, 4)