"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Nomeados tuplas em python: que tipo eles são?

Nomeados tuplas em python: que tipo eles são?

Postado em 2025-03-24
Navegar:775

Named Tuples in Python: what type are they?

tuplas nomeadas em python são uma extensão do tipo de dados de tupla embutido, permitindo que você forneça nomes significativos aos elementos de uma tupla. Em outras palavras, as tuplas denominadas são tuplas com atributos nomeados. Isso não é legal?

eles fazem parte do módulo de coleções e fornecem uma maneira de definir classes simples e imutáveis ​​ de uma maneira mais simples.

Espere o que, aulas?
Sim, aulas.

tuplas nomeadas são essencialmente classes imutáveis.

Esta é a mágica que ocorre: quando você cria uma tupla nomeada usando o nome de nome, o resultado não é uma instância da tupla em si, mas uma classe gerada dinamicamente que herda da tupla. Novamente, legal !!

Vamos ver como isso funciona.

from collections import namedtuple 

P = namedtuple("Point", "x y")

Quando você executa p = nomeado ("ponto", "x y"), você está criando uma nova classe chamada Point (conforme especificado no primeiro argumento para o nome de nomeado).

A função NomeTuple usa o tipo de bastidores para criar dinamicamente uma nova classe chamada Point que herda da tupla. Esta nova classe é armazenada na variável p.

e, como nas classes, o tipo é tipo.

> type(P)
class 'type'
> class A:
    pass

> type(A)
class 'type'

e que tipo é a instância de um nome de nome?

from collections import namedtuple 

P = namedtuple("Point", "x y")
p = P(1,2)

> print(type(p)) 
class '__main__.Point'

p é uma instância do tipo de ponto. Mas também é uma tupla:

> print(isinstance(p, tuple))
True

Resumindo:

  • P é uma classe gerada dinamicamente por nomeado.
  • instâncias de p são objetos de tipo de ponto que também subclasse tupla.

e uma última coisa:

é muito comum nomear a variável nomeada (o que chamamos de P) com o mesmo nome que o nome do tipo (o que chamamos de ponto), a classe criada dinamicamente:

from collections import namedtuple 

Point = namedtuple("Point", "x y")

usei um nome diferente para deixar claro a distinção entre thw two.

Declaração de lançamento Este artigo é reproduzido em: https://dev.to/guzmanojero/named-tuples-in-python-what-type-are-hey-128m?1 Se houver alguma infração, entre em contato com [email protected] para excluí-lo.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3