Objetos Pythonicos: APIs produtivas com o Data Model - Luciano Ramalho
Este tutorial irá mostrar como implementar objetos que se comportam "naturalmente" como tipos built-in, e então merecem ser chamados de Pythonicos. A apresentação inteira e exercícios serão guiados por doctests, que suportam uma forma de BDD (behavior-driver design) e permite aos participantes verificar o seu progresso nas partes práticas do tutorial.
Uma API é considerada Pythonica quando suporta idiomas Python adequados e convenientes. Por exemplo, programadores Python experam que qualquer coleção seja iteravel e suporte a função len(). Coleções vazias devem avaliar "falsy" em contextos boleanos. Objetos de qualquer tipo devem possuir uma representação de string amigável ao usuário e outro formato de exibição que não esconda detalhes e seja útil para depuração. Objetos de diversos tipos suportam operadores como + e * quanto fazem sentido. Objetos pythonicos são uma das chaves para a alta produtividade de um programador com a linguagem.
Todos esses recursos de objetos, e mais, são definidos no Python Data Model: a API que aplica a objetos Python em geral, desde inteiros planos a coleções e até funções e classes -- quando tratamos estes como objetos de primeira classe na linguagem. Os mais importante métodos especiais definidos no Data Model serão mostrados e exercitados neste tutorial.