Pular para o conteúdo

Como usar named tuples em Python?

CodeMDD.io

Escreva um código Pythonic e limpo com named tuples

A module collections do Python possui uma função chama named tuple, que é especialmente projetada para tornar seu código mais Pythonic quando você está trabalhando com tuplas. Com named tuple, você pode criar tipos de sequência imutáveis que permitem acessar seus valores usando nomes de campos descritivos e a notação de ponto em vez de índices inteiros obscuros.

Se você tem alguma experiência usando Python, então você sabe que escrever um código Pythonic é uma habilidade essencial para os desenvolvedores de Python. Neste tutorial, você vai aprimorar essa habilidade usando named tuples.

Tópicos abordados neste tutorial:

  • Criar classes named tuples usando a função namedtuple()
  • Identificar e aproveitar recursos interessantes de named tuples
  • Usar instâncias de named tuples para escrever um código Pythonic
  • Decidir se usar um named tuple ou uma estrutura de dados similar
  • Criar subclasses de named tuples para adicionar novos recursos

Para aproveitar ao máximo este tutorial, é necessário ter uma compreensão geral da filosofia do Python relacionada à escrita de um código Pythonic e legível. Você também precisa conhecer o básico de como trabalhar com:

  • Tuplas
  • Dicionários
  • Classes e programação orientada a objetos
  • Data classes
  • Tipos de dados

Se você não possui todo o conhecimento necessário antes de iniciar este tutorial, não tem problema! Você pode parar e revisar os recursos acima conforme necessário.

Usando named tuple para escrever código Pythonic

A função namedtuple() da biblioteca collections do Python permite criar classes named tuples. Uma named tuple é semelhante a uma tupla, mas com a vantagem de ter campos nomeados para facilitar o acesso aos valores.

Vamos começar importando a função namedtuple do módulo collections:

from collections import namedtuple

Em seguida, podemos criar uma named tuple chamada Point para representar as coordenadas x e y de um ponto em um plano cartesiano:

Point = namedtuple('Point', ['x', 'y'])

Aqui, nomeamos nossa classe named tuple de Point e especificamos os campos x e y como uma lista de strings [‘x’, ‘y’].

Agora podemos criar instâncias da nossa classe named tuple Point:

p1 = Point(2, 3)
p2 = Point(0, 5)

Podemos acessar os valores dos campos usando a notação de ponto:

print(p1.x) # Output: 2
print(p1.y) # Output: 3
print(p2.x) # Output: 0
print(p2.y) # Output: 5

Usando named tuples, nosso código se torna muito mais legível e Pythonic. Em vez de usar índices inteiros confusos para acessar os valores, podemos usar nomes de campos descritivos.

Além disso, as instâncias de named tuples são imutáveis, o que significa que não podemos modificar seus valores depois de criá-los. Isso nos ajuda a escrever um código mais seguro e livre de erros.