8. Tipos de Dados
*****************

Os módulos descritos neste capítulo fornecem uma variedade de tipos de
dados especializados, como datas e horas, matrizes de tipo fixo, filas
de heap, filas sincronizadas e conjuntos.

O Python também fornece alguns tipos de dados built-ins, em
particular, "dict", "list", "set" e "frozenset", e "tuple". A classe
"str" é usada para armazenar strings Unicode e a classe "bytes" é
usada para armazenar dados binários.

Os seguintes módulos estão documentados neste capítulo:

* 8.1. "datetime" --- Tipos básicos de data e hora

  * 8.1.1. Tipos disponíveis

  * 8.1.2. "timedelta" Objetos

  * 8.1.3. "date" Objetos

  * 8.1.4. Objetos "datetime"

  * 8.1.5. Objetos "time"

  * 8.1.6. Objetos "tzinfo"

  * 8.1.7. Objetos "timezone"

  * 8.1.8. Comportamento de "strftime()" e "strptime()"

* 8.2. "calendar" --- General calendar-related functions

* 8.3. Tipos de dados do contêiner

  * 8.3.1. "ChainMap" objects

    * 8.3.1.1. "ChainMap" Examples and Recipes

  * 8.3.2. "Counter" objects

  * 8.3.3. Objetos "deque"

    * 8.3.3.1. Receitas de "deque"

  * 8.3.4. Objetos "defaultdict"

    * 8.3.4.1. "defaultdict" Examples

  * 8.3.5. "namedtuple()" Factory Function for Tuples with Named
    Fields

  * 8.3.6. Objetos "OrderedDict"

    * 8.3.6.1. "OrderedDict" Examples and Recipes

  * 8.3.7. "UserDict" objects

  * 8.3.8. "UserList" objects

  * 8.3.9. "UserString" objects

* 8.4. "collections.abc" --- Classes Base Abstratas para Contêineres

  * 8.4.1. Coleções Abstratas Classes Base

* 8.5. "heapq" --- Heap queue algorithm

  * 8.5.1. Basic Examples

  * 8.5.2. Priority Queue Implementation Notes

  * 8.5.3. Teoria

* 8.6. "bisect" --- Algoritmo de bisseção de vetor

  * 8.6.1. Pesquisando em listas ordenadas

  * 8.6.2. Outros Exemplos

* 8.7. "array"--- Arrays eficientes de valores numéricos

* 8.8. "weakref" --- Weak references

  * 8.8.1. Objetos de Referência Fraca

  * 8.8.2. Exemplo

  * 8.8.3. Objetos finalizadores

  * 8.8.4. Comparing finalizers with "__del__()" methods

* 8.9. "types" --- Criação de tipos dinâmicos e nomes para tipos
  embutidos

  * 8.9.1. Criação de Tipo Dinâmico

  * 8.9.2. Tipos padrão do intepretador

  * 8.9.3. Classes e funções de utilidades adicionais

  * 8.9.4. Funções de utilidade de corrotina

* 8.10. "copy" --- Operações de cópia profunda e cópia sombra

* 8.11. "pprint" --- Impressão Bonita de Dados

  * 8.11.1. PrettyPrinter Objects

  * 8.11.2. Exemplo

* 8.12. "reprlib" --- Alternate "repr()" implementation

  * 8.12.1. Objetos Repr

  * 8.12.2. Subclassing Repr Objects

* 8.13. "enum" --- Suporte a enumerações

  * 8.13.1. Conteúdo do Módulo

  * 8.13.2. Creating an Enum

  * 8.13.3. Programmatic access to enumeration members and their
    attributes

  * 8.13.4. Duplicating enum members and values

  * 8.13.5. Ensuring unique enumeration values

  * 8.13.6. Usando valores automáticos

  * 8.13.7. Iteração

  * 8.13.8. Comparações

  * 8.13.9. Allowed members and attributes of enumerations

  * 8.13.10. Restricted subclassing of enumerations

  * 8.13.11. Pickling

  * 8.13.12. Functional API

  * 8.13.13. Derived Enumerations

    * 8.13.13.1. IntEnum

    * 8.13.13.2. IntFlag

    * 8.13.13.3. Flag

    * 8.13.13.4. Others

  * 8.13.14. Interesting examples

    * 8.13.14.1. Omitting values

      * 8.13.14.1.1. Using "auto"

      * 8.13.14.1.2. Using "object"

      * 8.13.14.1.3. Using a descriptive string

      * 8.13.14.1.4. Usando um "__new__()" personalizado

    * 8.13.14.2. OrderedEnum

    * 8.13.14.3. DuplicateFreeEnum

    * 8.13.14.4. Planet

  * 8.13.15. How are Enums different?

    * 8.13.15.1. Enum Classes

    * 8.13.15.2. Enum Members (aka instances)

    * 8.13.15.3. Finer Points

      * 8.13.15.3.1. Supported "__dunder__" names

      * 8.13.15.3.2. Supported "_sunder_" names

      * 8.13.15.3.3. "Enum" member type

      * 8.13.15.3.4. Boolean value of "Enum" classes and members

      * 8.13.15.3.5. "Enum" classes with methods

      * 8.13.15.3.6. Combining members of "Flag"
