classDiagram class Container { <<abstract>> +__contains__() } class Iterable { <<abstract>> +__iter__() } class Iterator { <<abstract>> +__next__() +__iter__() } class Reversible { <<abstract>> +__reversed__() } class Sized { <<abstract>> +__len__() } class Collection { <<abstract>> +__contains__() +__iter__() +__len__() } class Sequence { <<abstract>> +__getitem__() +__len__() +__contains__() +__iter__() +__reversed__() +index() +count() } class MutableSequence { <<abstract>> +__getitem__() +__setitem__() +__delitem__() +__len__() +insert() +append() +clear() +reverse() +extend() +pop() +remove() +__iadd__() } class Set { <<abstract>> +__contains__() +__iter__() +__len__() +__le__() +__lt__() +__eq__() +__ne__() +__gt__() +__ge__() +__and__() +__or__() +__sub__() +__xor__() +isdisjoint() } class MutableSet { <<abstract>> +__contains__() +__iter__() +__len__() +add() +discard() +clear() +pop() +remove() +__ior__() +__iand__() +__ixor__() +__isub__() } class Mapping { <<abstract>> +__getitem__() +__iter__() +__len__() +__contains__() +keys() +items() +values() +get() +__eq__() +__ne__() } class MutableMapping { <<abstract>> +__getitem__() +__setitem__() +__delitem__() +__iter__() +__len__() +pop() +popitem() +clear() +update() +setdefault() } Iterable <|-- Iterator Iterable <|-- Reversible Sized <|-- Collection Iterable <|-- Collection Container <|-- Collection Reversible <|-- Sequence Collection <|-- Sequence Sequence <|-- MutableSequence Collection <|-- Set Set <|-- MutableSet Collection <|-- Mapping Mapping <|-- MutableMapping MutableSequence <-- list Sequence <-- tuple Sequence <-- range Sequence <-- str MutableMapping <-- dict Set <-- frozenset MutableSet <-- set