Pengantar __getitem__: Metode Ajaib dengan Python

Pengantar __getitem__: Metode Ajaib dengan Python

Node Sumber: 2011206

Pengantar __getitem__: Metode Ajaib dengan Python
Gambar oleh Penulis

Python adalah bahasa ajaib dengan banyak konsep yang bahkan mungkin tidak dikenal oleh pengguna tingkat lanjut. Metode Dunder atau Magical adalah salah satunya. Metode ajaib adalah metode khusus yang dikelilingi oleh garis bawah ganda. Mereka tidak dipanggil secara eksplisit tidak seperti metode biasa di python. Salah satu metode ajaib tersebut adalah __getitem__ metode, mengaktifkan objek Python untuk berperilaku seperti urutan atau wadah misalnya daftar, kamus, dan tupel. Dibutuhkan indeks atau irisan dan mengambil nilai terkaitnya dari koleksi. Itu dipanggil secara otomatis setiap kali kita menggunakan indexer [ ] operator untuk mengakses elemen di dalam objek Anda.

Pikirkan metode ini sebagai tongkat ajaib yang memberi Anda kekuatan untuk mengekstrak informasi yang diperlukan hanya dengan menulis beberapa baris kode. Menarik kan? Metode ini juga digunakan secara luas dalam analisis data dan pembelajaran mesin. Jadi, mari selami lebih dalam __getitem__ metode dan temukan kekuatan dan fleksibilitasnya.

Saya ingin Anda memahami bahwa tugas Anda sebagai programmer Python lebih dari sekadar menulis kode fungsional. Kode Anda harus efisien, mudah dibaca, dan dapat dipelihara. Menggunakan __getitem__ akan membantu Anda mencapai tujuan ini. Berikut adalah beberapa manfaat lain menggunakan metode ajaib ini:

  • Mengurangi penggunaan memori dengan memungkinkan Anda mengekstrak hanya informasi penting alih-alih memuat struktur data lengkap ke dalam memori
  • Memberikan fleksibilitas yang lebih besar dalam cara data ditangani dan dimanipulasi
  • Memungkinkan Anda mengulang koleksi tanpa mengulang data
  • Meningkatkan fungsionalitas dengan memungkinkan Anda menulis pengindeksan tingkat lanjut yang mungkin tidak dapat dilakukan dengan tipe bawaan
  • Menyederhanakan kode karena menggunakan notasi yang sudah dikenal

Sintaks untuk file __getitem__ metode adalah sebagai berikut:

def __getitem__(self, index): # Your Implementation pass

 

Ini mendefinisikan perilaku fungsi dan mengambil indeks yang Anda coba akses di parameternya. Kita dapat menggunakan metode ini seperti ini:

my_obj[index] 

 

Ini diterjemahkan menjadi pernyataan my_obj.__getitem__(index) Dibawah tenda. Sekarang Anda mungkin berpikir apa bedanya dengan built-in indexer [] operator? Di mana pun Anda menggunakan notasi ini, python secara otomatis memanggil __getitem__ metode untuk Anda dan merupakan singkatan untuk mengakses elemen. Tetapi jika Anda ingin mengubah perilaku pengindeksan untuk objek khusus, Anda perlu memanggil secara eksplisit __getitem__ Metode.

Contoh 01

Mari kita mulai dengan contoh yang mudah terlebih dahulu. Kami akan membuat kelas Siswa yang akan memiliki daftar semua siswa dan kami dapat mengaksesnya dengan indeks dan menganggap bahwa indeks tersebut mewakili ID siswa unik mereka.

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])

 

Keluaran:

 

Sekarang kita akan beralih ke contoh lanjutan di mana kita akan mengubah perilaku pengindeksan menggunakan __getitem__ metode. Misalkan saya memiliki daftar elemen string dan saya ingin mengambil elemen setiap kali saya memasuki posisi indeksnya dan saya juga bisa mendapatkan posisi indeks jika saya memasukkan string itu sendiri.

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']) 

 

Keluaran:

red
green
0 2

Metode ini sangat berguna untuk pencarian cepat atribut instance. Mempertimbangkan fleksibilitas dan keserbagunaan metode ini, saya akan mengatakan ini adalah salah satu metode sihir Python yang paling kurang dimanfaatkan. Saya harap Anda menikmati membaca artikel ini dan beri tahu saya di bagian komentar jika Anda tertarik untuk mengetahui tentang metode ajaib lainnya di Python.
 
 
Kanwal Mehreen adalah pengembang perangkat lunak yang bercita-cita tinggi dengan minat dalam ilmu data dan aplikasi AI dalam kedokteran. Kanwal terpilih sebagai Google Generation Scholar 2022 untuk wilayah APAC. Kanwal suka berbagi pengetahuan teknis dengan menulis artikel tentang topik yang sedang tren, dan bersemangat untuk meningkatkan representasi perempuan di industri teknologi.
 

Stempel Waktu:

Lebih dari KDnugget