封面
版权信息
O’Reilly Media, Inc.介绍
前言
第一部分 序幕
NOTE
如果完整地说出“下划线-下划线- getitem -下划线-下划线”,又会很麻烦。于是我跟着Steve Holden,一位技术书作者和老师,学会了“双下- getitem”(dunder-getitem)这种说法。于是乎,特殊方法也叫双下方法(dunder method)
2024-05-16 07:31:02
NOTE
ranks = [str(n) for n in range(2, 11)]+list(‘JQKA’) suits = ‘spades diamonds clubs hearts’.split( )
2024-05-16 07:35:56
NOTE
由__getitem__方法
2024-05-16 07:37:08
NOTE
作为你的类的用户,他们不必去记住标准操作的各式名称(“怎么得到元素的总数?是.size( )还是.length( )还是别的什么?”)。
2024-05-16 07:42:38
NOTE
因为__getitem__方法把[]操作交给了self._cards列表,所以我们的deck类自动支持切片(slicing)操作
2024-05-16 07:42:53
NOTE
仅仅实现了__getitem__方法,这一摞牌就变成可迭代的了
2024-05-16 07:43:35
NOTE
过长的内容就会被如上面例子的最后一行的省略号(…)所替代。此时就需要#doctest:+ELLIPSIS这个指令来保证doctest能够通过。
2024-05-16 19:39:51
NOTE
迭代通常是隐式的,譬如说一个集合类型没有实现__contains__方法,那么in运算符就会按顺序做一次迭代搜索
2024-05-16 19:41:42
NOTE
黑桃最大、红桃次之、方块再次、梅花最小
2024-05-16 19:42:14
NOTE
通过实现__len__和__getitem__这两个特殊方法,FrenchDeck就跟一个Python自有的序列数据类型一样,可以体现出Python的核心语言特性(例如迭代和切片)
2024-05-16 19:45:06