Tipos de Dados
**************

Os módulos descritos neste capítulo fornecem uma variedade de tipos de
dados especializados, como datas e horas, vetores de tipo fixo, filas
de heap, filas de extremidade dupla e enumerações.

O Python também fornece alguns tipos de dados embutidos, em especial
"dict", "list", "set" e "frozenset" e "tuple". A classe "str" é usada
para armazenar strings Unicode, e as classes "bytes" e "bytearray" são
usadas para armazenar dados binários.

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

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

  * Objetos Conscientes e Ingênuos

  * Constantes

  * Tipos disponíveis

    * Propriedades Comuns

    * Determinando se um Objeto é Consciente ou Ingênuo

  * Objetos "timedelta"

    * Exemplos de uso: "timedelta"

  * Objetos "date"

    * Exemplos de uso: "date"

  * Objetos "datetime"

    * Exemplos de uso: "datetime"

  * Objetos "time"

    * Exemplos de uso: "time"

  * Objetos "tzinfo"

  * Objetos "timezone"

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

    * Códigos de formatação para "strftime()" e "strptime()"

    * Detalhes técnicos

* "calendar" --- General calendar-related functions

* "collections" --- Tipos de dados do contêiner

  * Objetos "ChainMap"

    * Exemplos e Receitas de "ChainMap"

  * Objetos "Counter"

  * Objetos "deque"

    * Receitas de "deque"

  * Objetos "defaultdict"

    * Exemplos de "defaultdict"

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

  * Objetos "OrderedDict"

    * "OrderedDict" Examples and Recipes

  * "UserDict" objects

  * "UserList" objects

  * "UserString" objects

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

  * Classes Base Abstratas de Coleções

* "heapq" --- Heap queue algorithm

  * Exemplos básicos

  * Priority Queue Implementation Notes

  * Teoria

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

  * Pesquisando em listas ordenadas

  * Outros exemplos

* "array"--- Vetores eficientes de valores numéricos

* "weakref" --- Weak references

  * Objetos de Referência Fraca

  * Exemplo

  * Objetos finalizadores

  * Comparing finalizers with "__del__()" methods

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

  * Criação de tipos dinâmicos

  * Tipos padrão do interpretador

  * Classes e funções de utilidades adicionais

  * Funções de utilidade de corrotina

* "copy" --- Operações de cópia profunda e cópia rasa

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

  * PrettyPrinter Objects

  * Exemplo

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

  * Objetos Repr

  * Subclassing Repr Objects

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

  * Conteúdo do Módulo

  * Creating an Enum

  * Programmatic access to enumeration members and their attributes

  * Duplicating enum members and values

  * Ensuring unique enumeration values

  * Usando valores automáticos

  * Iteração

  * Comparações

  * Allowed members and attributes of enumerations

  * Restricted Enum subclassing

  * Pickling

  * API funcional

  * Derived Enumerations

    * IntEnum

    * IntFlag

    * Flag

    * Others

  * When to use "__new__()" vs. "__init__()"

  * Interesting examples

    * Omitting values

      * Using "auto"

      * Using "object"

      * Using a descriptive string

      * Usando um "__new__()" personalizado

    * OrderedEnum

    * DuplicateFreeEnum

    * Planet

    * TimePeriod

  * How are Enums different?

    * Enum Classes

    * Enum Members (aka instances)

    * Finer Points

      * Supported "__dunder__" names

      * Supported "_sunder_" names

      * "Enum" member type

      * Boolean value of "Enum" classes and members

      * "Enum" classes with methods

      * Combining members of "Flag"
