Immagine dell'autore
Python è un linguaggio magico con molti concetti che anche gli utenti avanzati potrebbero non conoscere. I metodi Dunder o Magical sono uno di questi. I metodi magici sono metodi speciali circondati da doppi trattini bassi. Non sono chiamati esplicitamente a differenza dei metodi ordinari in Python. Uno di questi metodi magici è il __getitem__
metodo, consentendo agli oggetti Python di comportarsi come sequenze o contenitori, ad esempio liste, dizionari e tuple. Prende l'indice o la sezione e recupera il valore associato dalla raccolta. Viene richiamato automaticamente ogni volta che utilizziamo il file indexer [ ]
operatore per accedere agli elementi all'interno dell'oggetto.
Pensa a questo metodo come a una bacchetta magica che ti garantisce il potere di estrarre le informazioni richieste semplicemente scrivendo poche righe di codice. Interessante vero? Questo metodo è anche ampiamente utilizzato nell'analisi dei dati e nell'apprendimento automatico. Quindi, tuffiamoci più a fondo nel __getitem__
metodo e scoprirne la potenza e la flessibilità.
Voglio che tu capisca che il tuo dovere come programmatore Python è più che scrivere semplicemente codice funzionale. Il tuo codice dovrebbe essere efficiente, leggibile e gestibile. Usando __getitem__
ti aiuterà a raggiungere questi obiettivi. Ecco alcuni altri vantaggi dell'utilizzo di questo metodo magico:
- Riduce l'utilizzo della memoria consentendo di estrarre solo le informazioni essenziali invece di caricare l'intera struttura dei dati nella memoria
- Fornisce una maggiore flessibilità nel modo in cui i dati vengono gestiti e manipolati
- Consente di eseguire iterazioni sulla raccolta senza ripetere i dati
- Migliora la funzionalità consentendo di scrivere indicizzazione avanzata che potrebbe non essere possibile con i tipi incorporati
- Semplifica il codice in quanto utilizza la notazione familiare
La sintassi per il __getitem__
il metodo è il seguente:
def __getitem__(self, index): # Your Implementation pass
Definisce il comportamento della funzione e prende l'indice a cui stai tentando di accedere nel suo parametro. Possiamo usare questo metodo in questo modo:
my_obj[index]
Questo si traduce nella dichiarazione my_obj.__getitem__(index)
sotto il cappuccio. Ora potresti pensare che com'è diverso dal built-in indexer []
operatore? Ovunque usi questa notazione, python chiama automaticamente il file __getitem__
metodo per te ed è la scorciatoia per accedere agli elementi. Tuttavia, se si desidera modificare il comportamento dell'indicizzazione per gli oggetti personalizzati, è necessario chiamare in modo esplicito il metodo __getitem__
metodo.
esempio #01
Cominciamo prima con un semplice esempio. Creeremo una classe Studente che avrà l'elenco di tutti gli studenti e potremo accedervi per indice e considerare che l'indice rappresenta il loro ID studente univoco.
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])
Produzione:
Ora passeremo a un esempio avanzato in cui cambieremo il comportamento di indicizzazione utilizzando il __getitem__
metodo. Supponiamo di avere un elenco di elementi stringa e di voler recuperare l'elemento ogni volta che inserisco la sua posizione di indice e posso anche ottenere la posizione di indice se inserisco la stringa stessa.
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'])
Produzione:
red
green
0 2
Questo metodo è estremamente utile per la ricerca rapida degli attributi dell'istanza. Considerando la flessibilità e la versatilità di questo metodo, direi che questo è uno dei metodi magici più sottoutilizzati di Python. Spero che ti sia piaciuto leggere questo articolo e fammi sapere nella sezione commenti se sei interessato a conoscere gli altri metodi magici in Python.
Kanwal Mehreen è un aspirante sviluppatore di software con un vivo interesse per la scienza dei dati e le applicazioni dell'IA in medicina. Kanwal è stato selezionato come Google Generation Scholar 2022 per la regione APAC. Kanwal ama condividere le conoscenze tecniche scrivendo articoli su argomenti di tendenza ed è appassionata di migliorare la rappresentanza delle donne nell'industria tecnologica.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. Accedi qui.
- Fonte: 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
- :È
- 2022
- 8
- a
- Chi siamo
- accesso
- Accedendo
- Raggiungere
- Avanzate
- AI
- AI in medicina
- Tutti
- Consentire
- .
- ed
- APAC
- applicazioni
- SONO
- argomento
- articolo
- news
- AS
- aspirante
- associato
- gli attributi
- automaticamente
- BE
- vantaggi
- Nero
- Blu
- incassato
- by
- chiamata
- detto
- Bandi
- Materiale
- il cambiamento
- classe
- codice
- collezione
- commento
- completamento di una
- concetti
- Prendere in considerazione
- considerando
- Tecnologie Container
- creare
- costume
- dati
- analisi dei dati
- scienza dei dati
- David
- più profondo
- definisce
- Costruttori
- diverso
- scopri
- doppio
- e
- facile
- efficiente
- elemento
- elementi
- consentendo
- entrare
- essential
- Anche
- esempio
- estratto
- estremamente
- familiare
- pochi
- Nome
- Flessibilità
- segue
- Nel
- da
- function
- funzionale
- funzionalità
- ELETTRICA
- ottenere
- Obiettivi
- borse di studio
- maggiore
- Green
- gestito
- Avere
- Aiuto
- qui
- cappuccio
- speranza
- Come
- HTTPS
- i
- ID
- implementazione
- miglioramento
- in
- Index
- industria
- informazioni
- esempio
- invece
- interesse
- interessato
- interessante
- Introduzione
- IT
- elementi
- SUO
- stessa
- KDnuggets
- Acuto
- Tasti
- Sapere
- conoscenze
- Lingua
- apprendimento
- piace
- Linee
- Lista
- elenchi
- Caricamento in corso
- ricerca
- macchina
- machine learning
- magia
- Mantenibile
- manipolata
- molti
- medicina
- Memorie
- metodo
- metodi
- forza
- Scopri di più
- maggior parte
- cambiano
- nomi
- Bisogno
- oggetto
- oggetti
- of
- on
- ONE
- operatore
- ordinario
- Altro
- parametro
- appassionato
- Platone
- Platone Data Intelligence
- PlatoneDati
- posizione
- possibile
- energia
- Programmatore
- Python
- Presto
- aumentare
- Lettura
- Rosso
- regione
- rappresentazione
- rappresenta
- necessario
- ritorno
- s
- Scienze
- Sezione
- selezionato
- AUTO
- Condividi
- abbreviazione
- dovrebbero
- Taglia
- So
- Software
- alcuni
- la nostra speciale
- inizia a
- dichiarazione
- La struttura
- studente
- Gli studenti
- tale
- circondato
- sintassi
- prende
- Tech
- industria tecnologica
- Consulenza
- che
- I
- loro
- Li
- Strumenti Bowman per analizzare le seguenti finiture:
- Pensare
- a
- Argomenti
- trend
- Tipi di
- per
- capire
- unico
- us
- Impiego
- uso
- utenti
- APPREZZIAMO
- bacchetta magica
- ampiamente
- volere
- con
- entro
- senza
- Donna
- donne in tecnologia
- sarebbe
- scrivere
- scrittura
- Trasferimento da aeroporto a Sharm
- zefiro