"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Llamado Tuple en Python: ¿Qué tipo son?

Llamado Tuple en Python: ¿Qué tipo son?

Publicado el 2025-03-24
Navegar:747

Named Tuples in Python: what type are they?

Las tuplas en Python son una extensión del tipo de datos de tupla incorporado, lo que le permite dar nombres significativos a los elementos de una tupla. En otras palabras, las tuplas nombradas son tuplas con atributos nombrados. ¿No es genial?

son ​​parte del módulo de colecciones y proporcionan una forma de definir clases simples, inmutables de una manera más simple.

espera qué, clases?
Sí, clases.

llamado TUples son esencialmente clases inmutables.

Esta es la magia que ocurre: cuando creas una tupla con nombre usando namedtuple, el resultado no es una instancia de la tupla misma, sino una clase generada dinámicamente que hereda de tuple. De nuevo, genial !!

veamos cómo funciona esto.

from collections import namedtuple 

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

Cuando ejecuta p = namedTuple ("punto", "x y"), está creando una nueva clase con nombre de punto (como se especifica en el primer argumento a namedTuple).

La función NamedTuple usa el tipo detrás de escena para crear dinámicamente una nueva clase llamada Point que hereda de Tuple. Esta nueva clase se almacena en la variable p.

y como con las clases, el tipo es tipo.

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

> type(A)
class 'type'

¿Y qué tipo es la instancia de un NameTuple?

from collections import namedtuple 

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

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

p es una instancia de punto de tipo. Pero también es una tupla:

> print(isinstance(p, tuple))
True

En resumen:

  • P es una clase generada dinámicamente por NamedTuple.
  • Las instancias de P son objetos de punto de tipo que también subclase tuple.

y una última cosa:

Es muy común nombrar la variable de NameTuple (lo que llamamos p) con el mismo nombre que el nombre de tipo (lo que llamamos punto), la clase creada dinámicamente:

from collections import namedtuple 

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

Usé un nombre diferente para aclarar la distinción entre thw dos.

Declaración de liberación Este artículo se reproduce en: https://dev.to/guzmanoJero/named-tuple-in-python-what-type-ear-hey-128m?
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3