Python 3.0+collectionsпонятие
collections.UserList
обёртки типов
Обёртка над list с содержимым в атрибуте .data; удобна для создания собственных списочных классов наследованием.
Синтаксис
class MyList(collections.UserList): ...
Отличие от наследования от list: у UserList срез, сложение и копия возвращают экземпляр вашего класса, а не голый список, и всё содержимое лежит в обычном списке .data, который удобно валидировать или подменить. Обратная сторона — объект не является list (isinstance(x, list) → False) и заметно медленнее из-за делегирования; в чужой код, ждущий настоящий список, передавайте .data или list(x).
Примеры
from collections import UserList
l = UserList([1, 2])
l.append(3)
print(list(l)) # → [1, 2, 3]
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности