namedtuple
A namedtuple , como o nome sugere, são tuplas nomeadas. Não é necessário usar índices inteiros para acessar seus elementos e podemos utilizar strings - similar aos dicionários. Mas ao contrário dos dicionários, namedtuple é imutável:
from collections import namedtupleConta = namedtuple(‘Conta’, ‘numero titular saldo limite’) conta = Conta(‘123-4’, ‘João’, 1000.0, 1000.0)
194 14.2 PARA SABER MAIS
print(conta)# saída: Conta(numero='123-4', titular='João', saldo=1000.0, limite=1000.0) print(conta.titular) #saída: JoãoNote que para acessar o elemento nomeado utilizamos o operador ’.’ (ponto). Uma namedtuple possui dois argumentos obrigatórios que são: o nome da tupla e seus campos (separados por vírgula ou espaço). No exemplo, a tupla se chama Conta e possui 4 campos: numero , titular , saldo e limite . Como são imutáveis, não podemos modificar os valores de seus campos:
conta.titular = “José”
Isso vai gerar o seguinte erro:
Traceback (most recent call last): File <stdin>, line 5, in <module>
conta.titular = "José" AttributeError: can't set attribute
A namedtuple também é compatível com uma tupla normal. Isso quer dizer que você também pode usar índices inteiros para acessar seus elementos.
print(conta[0]) #saída: '123-4'Mais detalhes de cada uma dessas estruturas estão na documentação e pode ser acessadas por este link: https://docs.python.org/3/library/collections.html. Outra alternativa é usar a função help() no objeto para acessar a documentação.