Como Usar Named Tuple no Python?
Escrever Código Pythonico e Limpo com named tuple
A função namedtuple()
do módulo collections
do Python é especialmente projetada para tornar seu código mais Pythonico ao trabalhar com tuplas. Com namedtuple()
, você pode criar tipos de sequência imutáveis que permitem acessar seus valores usando nomes descritivos de campo e a notação de ponto, em vez de índices inteiros.
Se você tem alguma experiência em usar Python, então conhece a importância de escrever código Pythonico. Neste tutorial, você vai aprimorar essa habilidade usando namedtuple
.
Neste tutorial, você aprenderá a:
- Criar classes
namedtuple
usando a funçãonamedtuple()
- Identificar e aproveitar os recursos interessantes do
namedtuple
- Usar instâncias de
namedtuple
para escrever código Pythonico - Decidir se deve usar um
namedtuple
ou outra estrutura de dados similar - Subclassear um
namedtuple
para fornecer novos recursos
Para aproveitar ao máximo este tutorial, é preciso ter uma compreensão geral da filosofia do Python relacionada a escrever código Pythonico e legível. Você também precisa conhecer os conceitos básicos de trabalho com:
- Tuplas
- Dicionários
- Classes e programação orientada a objetos
- Classes de dados
- Anotações de tipo
Se você não tem todos os conhecimentos necessários antes de começar este tutorial, não se preocupe! Você pode pausar e revisar os recursos mencionados conforme necessário.
Usando namedtuple
para escrever código Pythonico
A primeira coisa que você precisa fazer é importar a função namedtuple
do módulo collections
. Veja o exemplo abaixo:
Em seguida, você pode usar a função namedtuple
para criar uma classe namedtuple
. A sintaxe básica é a seguinte:
Substitua NomeDaClasse
pelo nome que você deseja dar à sua classe namedtuple
. Em seguida, adicione uma lista de campos que deseja que sua classe namedtuple
tenha.
Vamos ver um exemplo de criação de uma classe namedtuple
chamada Pessoa
com os campos nome
, idade
e cidade
:
Agora, você pode criar instâncias da classe Pessoa
usando a notação de ponto para atribuir valores aos campos. Veja o exemplo abaixo:
Você pode acessar os valores dos campos usando a notação de ponto. Por exemplo:
Criar e utilizar uma classe namedtuple
é tão simples quanto isso! Você pode usar essas classes em seu código Python para tornar seu código mais Pythonico e legível.
Criando classes semelhantes a tuplas com namedtuple()
Você também pode criar classes semelhantes a tuplas usando namedtuple()
. A diferença é que as classes semelhantes a tuplas não têm nomes de campo explícitos. Em vez disso, os campos são indexados numericamente.
Para criar uma classe semelhante a uma tupla, você precisa fornecer o nome da classe e o número de campos como argumentos para a função namedtuple()
. Consulte o exemplo abaixo:
Neste exemplo, estamos criando uma classe semelhante a uma tupla chamada ClasseSemelhanteATupla
com três campos.
Você pode criar instâncias dessa classe semelhante a uma tupla e acessar os valores dos campos usando a notação de indexação numérica. Veja o exemplo abaixo:
Embora essa abordagem seja útil, usar namedtuple()
com nomes explícitos de campo é geralmente mais Pythonico e legível, pois os campos têm nomes descritivos.