コレクション抽象基底クラス
#collections.abc
https://docs.python.org/ja/3/library/collections.abc.html#collections-abstract-base-classes
継承関係を一度整理したい
型ヒント書くときにも役に立ちそう
ここではベースクラス < 派生クラスと表記する
Iterable < Iterator < Generator
GeneratorはIterableなのでfor文で回せる
Generatorまでの抽象基底クラスの継承関係
Iterable < Reversible
(Sized & Iterable & Container) < Collection
collections.abc.Collection
(Collection & Reversible) < Sequence < MutableSequence
Collection < Set
実装では__slots__ = ()(空のタプル)
インスタンス辞書の作成を抑制してメモリ使用量を低く保つ (ref: collections.namedtuple)