Introdução
Neste projeto, você aprenderá como implementar uma named tuple simples em Python. Uma named tuple é uma estrutura de dados que permite acessar dados usando tanto indexação posicional quanto nomes de atributos, fornecendo uma maneira mais intuitiva e legível de trabalhar com dados estruturados.
👀 Pré-visualização
## Output
🎯 Tarefas
Neste projeto, você aprenderá:
- Como criar uma classe
NamedTupleque herda da classetupleembutida - Como implementar os métodos
__init__,__new__,__getitem__e__repr__para alcançar a funcionalidade desejada - Como acessar dados usando tanto indexação posicional quanto nomes de atributos
- Como representar a instância
NamedTupleem um formato legível
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Compreender o conceito de named tuples e seus benefícios
- Implementar uma classe named tuple simples em Python
- Usar a named tuple para acessar e representar dados estruturados de uma maneira mais intuitiva
Implementar a Classe NamedTuple
Nesta etapa, você aprenderá como implementar a classe NamedTuple, que permite acessar dados usando tanto indexação posicional quanto nomes de atributos.
- Abra o arquivo
namedtuple.pyno seu editor de código. - Defina a classe
NamedTuple, que deve herdar da classetuple. - No método
__init__, aceite dois parâmetros:iterable(os dados) efields(os nomes para os dados). - Armazene o
iterableefieldscomo variáveis de instânciaself.dataeself.fields, respectivamente. - Use um loop
forpara iterar sobre osfieldse definir cada campo como um atributo da instânciaNamedTuple, atribuindo o valor correspondente deself.data. - Implemente o método
__new__para criar uma nova instância da classeNamedTuple. Este método deve chamar o método__new__da classetuplee retornar a nova instância. - Implemente o método
__getitem__para permitir o acesso aos dados usando tanto indexação posicional quanto nomes de atributos. Se o índice for uma string, encontre o índice do campo correspondente emself.fieldse retorne o valor deself.data. - Implemente o método
__repr__para retornar uma representação em string da instânciaNamedTupleno formatoNamedTuple(x=1, y=2), ondexeysão os nomes dos campos, e1e2são os valores correspondentes.
Sua classe NamedTuple completa deve ser semelhante a esta:
class NamedTuple(tuple):
def __init__(self, iterable, fields):
self.data = iterable
self.fields = tuple(fields)
for i, attr in enumerate(self.fields):
setattr(self, attr, self.data[i])
def __new__(cls, iterable, fields):
return super().__new__(cls, iterable)
def __getitem__(self, index):
if isinstance(index, str):
index = self.fields.index(index)
return self.data[index]
def __repr__(self):
return f"NamedTuple({', '.join(f'{field}={self[field]}' for field in self.fields)})"
Testar a Classe NamedTuple
Nesta etapa, você testará a classe NamedTuple que implementou na etapa anterior.
- No arquivo
namedtuple.py, adicione o seguinte código no final do arquivo:
if __name__ == "__main__":
## Example usage:
testData = [1, 2]
fields = ["x", "y"]
t = NamedTuple(testData, fields)
print(t) ## Output: NamedTuple(x=1, y=2)
print(t[1]) ## Output: 2
print(t.x) ## Output: 1
- Salve o arquivo
namedtuple.py. - Abra um terminal ou prompt de comando e navegue até o diretório que contém o arquivo
namedtuple.py. - Execute o seguinte comando para executar o script:
python3 namedtuple.py
Você deve ver a seguinte saída:
NamedTuple(x=1, y=2)
2
1
Isso demonstra que a classe NamedTuple está funcionando como esperado, permitindo que você acesse os dados usando tanto indexação posicional quanto nomes de atributos.
Parabéns! Você implementou com sucesso uma named tuple simples em Python.
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



