Imagen del autor
Python es un lenguaje mágico con muchos conceptos con los que incluso los usuarios avanzados pueden no estar familiarizados. Los métodos Dunder o Magical es uno de ellos. Los métodos mágicos son métodos especiales que están rodeados por guiones bajos dobles. No se llaman explícitamente a diferencia de los métodos ordinarios en python. Uno de esos métodos mágicos es el __getitem__
método, lo que permite que los objetos de Python se comporten como secuencias o contenedores, por ejemplo, listas, diccionarios y tuplas. Toma el índice o segmento y recupera su valor asociado de la colección. Se invoca automáticamente cada vez que usamos el indexer [ ]
operador para acceder a los elementos dentro de su objeto.
Piense en este método como una varita mágica que le otorga el poder de extraer la información requerida con solo escribir unas pocas líneas de código. ¿Interesante verdad? Este método también se usa ampliamente en el análisis de datos y el aprendizaje automático. Entonces, profundicemos más en el __getitem__
y descubre su poder y flexibilidad.
Quiero que comprenda que su deber como programador de Python es más que solo escribir código funcional. Su código debe ser eficiente, legible y mantenible. Usando __getitem__
le ayudará a lograr estos objetivos. Aquí hay algunos otros beneficios de usar este método mágico:
- Reduce el uso de la memoria al permitirle extraer solo la información esencial en lugar de cargar la estructura de datos completa en la memoria
- Proporciona una mayor flexibilidad en la forma en que se manejan y manipulan los datos.
- Le permite iterar sobre la colección sin recorrer los datos
- Mejora la funcionalidad al permitirle escribir indexación avanzada que puede no ser posible con los tipos incorporados
- Simplifica el código ya que utiliza la notación familiar
La sintaxis para el __getitem__
método es el siguiente:
def __getitem__(self, index): # Your Implementation pass
Define el comportamiento de la función y toma el índice al que intenta acceder en su parámetro. Podemos usar este método así:
my_obj[index]
Esto se traduce en la declaración my_obj.__getitem__(index)
bajo el capó. Ahora puede pensar en qué se diferencia del sistema integrado indexer []
¿operador? Dondequiera que use esta notación, python llama automáticamente al __getitem__
método para usted y es la abreviatura para acceder a los elementos. Pero si desea cambiar el comportamiento de la indexación de objetos personalizados, debe llamar explícitamente al __getitem__
método.
Ejemplo #01
Comencemos con un ejemplo fácil primero. Crearemos una clase de Estudiante que tendrá la lista de todos los estudiantes y podemos acceder a ellos por índice y considerar que el índice representa su ID de estudiante único.
class Student: def __init__(self, names): self.names=names def __getitem__(self,index): return self.names[index] section_A= Student(["David", "Elsa", "Qasim"])
print(section_A[2])
Salida:
Ahora pasaremos a un ejemplo avanzado donde cambiaremos el comportamiento de indexación usando el __getitem__
método. Supongamos que tengo una lista de elementos de cadena y quiero recuperar el elemento cada vez que ingreso su posición de índice y también puedo obtener la posición de índice si ingreso la cadena misma.
class MyList: def __init__(self, items): self.items = items def __getitem__(self, index): if isinstance(index, int): return self.items[index] elif isinstance(index, str): return self.items.index(index) else: raise TypeError("Invalid Argument Type") my_list = MyList(['red', 'blue', 'green', 'black']) # Indexing with integer keys
print(my_list[0]) print(my_list[2]) # Indexing with string keys
print(my_list['red']) print(my_list['green'])
Salida:
red
green
0 2
Este método es extremadamente útil para la búsqueda rápida de los atributos de la instancia. Teniendo en cuenta la flexibilidad y versatilidad de este método, diría que es uno de los métodos mágicos de Python menos utilizados. Espero que hayas disfrutado leyendo este artículo y déjame saber en la sección de comentarios si estás interesado en conocer los otros métodos mágicos en Python.
Kanwal Mehreen es un aspirante a desarrollador de software con un gran interés en la ciencia de datos y las aplicaciones de IA en medicina. Kanwal fue seleccionado como Google Generation Scholar 2022 para la región APAC. A Kanwal le encanta compartir conocimientos técnicos escribiendo artículos sobre temas de actualidad y le apasiona mejorar la representación de las mujeres en la industria tecnológica.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- Platoblockchain. Inteligencia del Metaverso Web3. Conocimiento amplificado. Accede Aquí.
- Fuente: https://www.kdnuggets.com/2023/03/introduction-getitem-magic-method-python.html?utm_source=rss&utm_medium=rss&utm_campaign=introduction-to-__getitem__-a-magic-method-in-python
- :es
- 2022
- 8
- a
- Sobre
- de la máquina
- el acceso
- Lograr
- avanzado
- AI
- IA en medicina
- Todos
- Permitir
- análisis
- y
- APAC
- aplicaciones
- somos
- argumento
- artículo
- AS
- aspirantes
- asociado
- atributos
- automáticamente
- BE
- beneficios
- Negro
- Azul
- incorporado
- by
- llamar al
- , que son
- Calls
- PUEDEN
- el cambio
- clase
- código
- --
- comentario
- completar
- conceptos
- Considerar
- en vista de
- Contenedores
- Para crear
- personalizado
- datos
- análisis de los datos
- Ciencia de los datos
- David
- más profundo
- Define
- Developer
- una experiencia diferente
- descrubrir
- doble
- e
- de forma sencilla
- eficiente
- elementos
- elementos
- permitiendo
- Participar
- esencial
- Incluso
- ejemplo
- extraerlos
- extremadamente
- familiar
- pocos
- Nombre
- Flexibilidad
- siguiente
- en
- función
- funcional
- a la fatiga
- generación de AHSS
- obtener
- Goals
- subvenciones
- mayor
- Verde
- manejado
- Tienen
- ayuda
- esta página
- capucha
- esperanza
- Cómo
- HTTPS
- i
- ID
- implementación
- la mejora de
- in
- índice
- energético
- información
- ejemplo
- intereses
- interesado
- interesante
- Introducción
- IT
- artículos
- SUS
- sí mismo
- nuggets
- Keen
- claves
- Saber
- especialistas
- idioma
- aprendizaje
- como
- líneas
- Etiqueta LinkedIn
- Lista
- Listas
- carga
- búsqueda
- máquina
- máquina de aprendizaje
- magic
- Mantenible
- manipulado
- muchos
- medicina
- Salud Cerebral
- Método
- métodos
- podría
- más,
- MEJOR DE TU
- movimiento
- nombres
- ¿ Necesita ayuda
- objeto
- objetos
- of
- on
- ONE
- operador
- ordinario
- Otro
- parámetro
- apasionado
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- posición
- posible
- industria
- Programador
- Python
- Búsqueda
- aumento
- Reading
- Rojo
- región
- representación
- representa
- Requisitos
- volvemos
- s
- Ciencia:
- Sección
- seleccionado
- AUTO
- Compartir
- taquigrafía
- tienes
- Rebanada
- So
- Software
- algo
- especial
- comienzo
- Posicionamiento
- estructura
- Estudiante
- Estudiantes
- tal
- rodeado
- sintaxis
- toma
- tecnología
- industria de la tecnología
- Técnico
- esa
- El
- su
- Les
- Estas
- Pensar
- a
- Temas
- tendencias
- tipos
- bajo
- entender
- único
- us
- Uso
- utilizan el
- usuarios
- propuesta de
- varita mágica
- extensamente
- seguirá
- dentro de
- sin
- Mujeres
- mujeres en tecnología
- se
- escribir
- la escritura
- tú
- zephyrnet