collections.UserList
https://docs.python.org/ja/3/library/collections.html#userlist-objects
#Python_collections
独自のリスト風クラスの基底クラスとして便利で、既存のメソッドをオーバーライドしたり新しいメソッドを加えたりできます。
こうして、リストに新しい振る舞いを加えられます。
このクラスの必要性は、 list から直接的にサブクラス化できる能力に部分的に取って代わられました
TODO:『ロバストPython』
5.4.2 既存のデータ型の変更
で解説された「
__getitem__
オーバーライドできない」は解消されたということ?
UserList.__getitem__ doesn't account for slices #71826
https://github.com/python/cpython/blob/v3.11.2/Lib/collections/__init__.py#L1237-L1241
スライスが渡ったら該当する部分リストからインスタンスを作って返すように修正された(Python 3.7, 3.8)
return self.__class__(self.data[i])
Fix collections.UserList shallow copy #71328
(Python 3.8)