Документация на python часто говорит о "контейнерах". Пример:
Если check_circular - False (по умолчанию: True), то круговой контрольная проверка для типов контейнеров будет пропущена, а круговой ссылка приведет к OverflowError (или, что еще хуже).
Но я не могу найти никакого официального определения контейнеров, ни их списка.
Изменить
Для Python 2.7.3:
Проверенные типы встроенных контейнеров:
(isinstance(object, collections.Container)
возвращает True
)
-
Контейнеры, которые имеют метод
__contains__
:- Все встроенные типы последовательностей: списки, bytearrays, строки, строки Unicode и кортежи.
- Словари
- Все типы встроенных наборов: наборы и фризонсетты
-
Контейнеры, которые не имеют метода
__contains__
:- объекты xrange
Проверены встроенные типы, которые не являются контейнерами:
(isinstance(object, collections.Container)
возвращает False
):
- Объекты Int
- Объекты с плавающей точкой
- Длинные объекты
- Булевы объекты
- Объекты модуля
- Файловые объекты
- Буферные объекты
- Объект None
Скажите, какие другие встроенные типы вы проверили для isinstance(object, collections.Container)
, и я добавлю их в список.