Clase de datos: la clase de datos es un tipo de clase que se utiliza para almacenar datos sin ninguna funcionalidad. Estas clases de datos son solo clases regulares que tienen el propósito principal de almacenar el estado y los datos sin conocer las restricciones y la lógica detrás de esto. Cada vez que crea una clase que en su mayoría contiene atributos y ciertas propiedades para tratar con los datos y su representación.
Ejemplo:
Python3
# Importing dataclass module from dataclasses import dataclass # Annotation @dataclass # Class with attributes class GeeksArticle(): """A class for holding an article content""" # Attributes Declaration # using Type Hints topic: str contributor: str language: str upvotes: int # A DataClass object article = GeeksArticle("DataClasses", "nightfury1", "Python", 1) print(article)
Producción:
GfgArticle(topic=’DataClasses’, contribuidor=’nightfury1′, language=’Python’, upvotes=1)
NamedTuple: NamedTuple es una clase que contiene los datos como un formato de diccionario almacenado en elmódulo ‘ colecciones ‘. Almacenó los datos en un formato clave-valor donde cada clave se asignó a más valores. Entonces, accedemos a esos datos usando una clave específica o podemos usar los índices.
Ejemplo:
Python3
# Python script to demonstrate namedtuple() # importing nametuple() from collections module from collections import namedtuple # Declaring namedtuple() Contributor = namedtuple('Contributor', ['topic', 'author', 'post']) # Adding values C = Contributor('Difference between DataClass vs NamedTuple vs Object in Python', 'night_fury1', 'Technical Content Writer Intern') # Access using index print ("The Article Topic : ", end ="") print (C[0]) # Access using name print ("The Article Contributor Name : ", end ="") print (C.author) # Access using getattr() print ("The Article Contributor Post : ", end ="") print (getattr(C, 'post'))
Producción:
El tema del artículo: diferencia entre DataClass, NamedTuple y Object en Python
. Nombre del colaborador del artículo: night_fury1 Publicación
del colaborador del artículo: Escritor de contenido técnico en prácticas
Objeto: Un objeto es simplemente una colección de datos (variables) y métodos (funciones) que actúan sobre esos datos. En otras palabras, decimos que Object es una instancia de la clase.
Ejemplo:
Python3
# Python script for demostraation of object class Gfg: def __init__(self, topic, contributor): self.topic = topic self.contributor = contributor def myfunc(self): print("Article: ", self.topic) print("Contributor: ", self.contributor) # objects creation g = Gfg("Difference between DataClass vs NamedTuple vs Object in Python", "nightfury1") # function call g.myfunc()
Producción:
Artículo: Diferencia entre DataClass, NamedTuple y Object en Python
Colaborador: nightfury1
Tabla de diferencias entre DataClass, NamedTuple y Object
clase de datos |
NamedTuple |
Objeto |
|
---|---|---|---|
Creación | DataClass es más lento que otros al crear objetos de datos (2,94 µs). | NamedTuple es el más rápido al crear objetos de datos (2.01 µs). | Un objeto es más lento que DataClass pero más rápido que NamedTuple al crear objetos de datos (2,34 µs). |
Leer propiedad | Igual a Object y más rápido que NamedTuple al leer los objetos de datos (24,7 ns). | NamedTuple es más lento que otros en la lectura de objetos de datos (26,9 ns). | Igual a DataClass y más rápido que NamedTuple (24,7 ns). |
Propiedad anidada | Más rápido que otros al anidar objetos de datos y sus propiedades (48,1 ns). | Más lento que otros en el anidamiento de objetos de datos (75,8 ns). | Más rápido que NamedTuple pero más lento que DataClass (52,1 ns). |
Ejecutar función | Más rápido que NamedTuple pero más lento que los objetos (829 ns). | Más lento que otros en ejecución de funciones (946 ns). | Más rápido en ejecución de funciones en objetos de datos (821 ns). |
Tamaño | 56 bytes | 80 bytes | 56 bytes |
Publicación traducida automáticamente
Artículo escrito por night_fury1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA