__getitem__'ye Giriş: Python'da Sihirli Bir Yöntem

__getitem__'ye Giriş: Python'da Sihirli Bir Yöntem

Kaynak Düğüm: 2011206

__getitem__'ye Giriş: Python'da Sihirli Bir Yöntem
Yazara göre resim

Python, ileri düzey kullanıcıların bile aşina olmayabileceği pek çok kavram içeren büyülü bir dildir. Dunder veya Magical yöntemler bunlardan biridir. Sihirli yöntemler, çift alt çizgi ile çevrili özel yöntemlerdir. Python'daki sıradan yöntemlerden farklı olarak açıkça çağrılmazlar. Böyle bir sihirli yöntem, __getitem__ yöntem, Python nesnelerinin diziler veya kaplar gibi davranmasını sağlar, örneğin listeler, sözlükler ve demetler. Dizini veya dilimi alır ve ilişkili değerini koleksiyondan alır. Her kullandığımızda otomatik olarak çağrılır. indexer [ ] nesnenizdeki öğelere erişmek için operatör.

Bu yöntemi, size sadece birkaç satır kod yazarak gerekli bilgileri çıkarma gücü veren sihirli bir değnek olarak düşünün. İlginç değil mi? Bu yöntem aynı zamanda veri analizi ve makine öğreniminde de yaygın olarak kullanılmaktadır. Öyleyse, daha derine inelim __getitem__ yöntemini kullanın ve gücünü ve esnekliğini keşfedin.

Bir Python programcısı olarak görevinizin işlevsel kod yazmaktan daha fazlası olduğunu anlamanızı istiyorum. Kodunuz verimli, okunabilir ve bakımı yapılabilir olmalıdır. kullanma __getitem__ bu hedeflere ulaşmanıza yardımcı olacaktır. İşte bu sihirli yöntemi kullanmanın diğer bazı faydaları:

  • Tüm veri yapısını belleğe yüklemek yerine yalnızca temel bilgileri ayıklamanıza izin vererek bellek kullanımını azaltır.
  • Verilerin nasıl işlendiği ve manipüle edildiği konusunda daha fazla esneklik sağlar
  • Veriler üzerinde döngüye girmeden koleksiyon üzerinde yineleme yapmanızı sağlar
  • Yerleşik tiplerle mümkün olmayabilecek gelişmiş indeksleme yazmanıza izin vererek işlevselliği geliştirir.
  • Bilinen gösterimi kullandığı için kodu basitleştirir

Için sözdizimi __getitem__ yöntem şu şekildedir:

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

 

İşlevin davranışını tanımlar ve erişmeye çalıştığınız dizini parametresinde alır. Bu yöntemi şu şekilde kullanabiliriz:

my_obj[index] 

 

Bu ifadeye çevirir my_obj.__getitem__(index) kaputun altında. Şimdi yerleşik olandan ne kadar farklı olduğunu düşünebilirsiniz. indexer [] Şebeke? Bu gösterimi nerede kullanırsanız kullanın, python otomatik olarak __getitem__ sizin için bir yöntemdir ve öğelere erişmenin kısayoludur. Ancak, özel nesneler için dizin oluşturma davranışını değiştirmek isterseniz, açıkça şunu çağırmanız gerekir: __getitem__ yöntemi.

Örnek #01

Önce kolay bir örnekle başlayalım. Tüm öğrencilerin listesine sahip olacak bir Öğrenci sınıfı oluşturacağız ve onlara dizine göre erişebileceğiz ve dizinin benzersiz öğrenci kimliklerini temsil ettiğini düşüneceğiz.

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

 

Çıktı:

 

Şimdi, kullanarak indeksleme davranışını değiştireceğimiz gelişmiş bir örneğe geçeceğiz. __getitem__ yöntem. Diyelim ki bir dize öğeleri listem var ve öğeyi dizin konumunu her girdiğimde almak istiyorum ve dizenin kendisini girersem dizin konumunu da alabilirim.

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

 

Çıktı:

red
green
0 2

Bu yöntem, örnek özniteliklerinin hızlı aranması için son derece kullanışlıdır. Bu yöntemin esnekliği ve çok yönlülüğü göz önüne alındığında, bunun Python'un en az kullanılan sihirli yöntemlerinden biri olduğunu söyleyebilirim. Umarım bu makaleyi okumaktan zevk almışsınızdır ve Python'daki diğer sihir yöntemleriyle ilgileniyorsanız yorum bölümünde bana bildirin.
 
 
Kanval Mehreen veri bilimine ve yapay zekanın tıptaki uygulamalarına büyük ilgi duyan, gelecek vadeden bir yazılım geliştiricisidir. Kanwal, APAC bölgesi için Google Generation Scholar 2022 olarak seçildi. Kanwal, trend olan konularda makaleler yazarak teknik bilgilerini paylaşmayı seviyor ve teknoloji endüstrisinde kadınların temsilini geliştirme konusunda tutkulu.
 

Zaman Damgası:

Den fazla KDNuggets