Python'da Yöntem Aşırı Yüklemesi İçin Eksiksiz Bir Kılavuz (Örneklerle)
Yayınlanan: 2022-04-23Aşırı yükleme, bir işlevin, yöntemin veya operatörün, aynı parametreye farklı parametreler ilettiğinizde farklı çalışma yeteneğidir. Python'da yöntem aşırı yüklemesi veya İşlev aşırı yüklemesi yaygın olarak kullanılan terimlere sahiptir. Aşırı yüklemenin başlıca avantajlarından bazıları, tek bir yöntemi birden çok şekilde kullanabilmenizdir; bu, bir ekiple çalışırken kodunuzu daha temiz tutmanıza ve karmaşıklığı ortadan kaldırmanıza yardımcı olur.
Yöntem Aşırı Yüklemesi nedir?
Nesneye Yönelik Programlamada, Metot Aşırı Yükleme, belirli bir nesne için proje ihtiyacına göre belirli bir metodun birden fazla şekilde çağrılabileceği senaryolarda kullanılır.
Python'da Yöntem Aşırı Yükleme örnekleri, makalenin ilerleyen bölümlerinde ayrıntılı olarak tartışılmaktadır.
Yöntem Geçersiz Kılma nedir?
Python'da Yöntem Geçersiz Kılma , bir alt sınıf ile bir üst sınıf arasında yöntem geçersiz kılmanın gerçekleşmesi dışında, Yöntem Aşırı Yüklemesine benzer. Yöntemlerin ne zaman çağrılacağı ile aynı parametrelere sahiptir. Yine de, üst sınıftan bazı işlevlerin geçersiz kılınması nedeniyle farklı davranırlar.
Yöntem Geçersiz Kılma Örneği
X sınıfı:
def method1(self):
print('X sınıfının ilk özelliği benim')
def method2(self):
print('X sınıfının ikinci özelliğiyim')
sınıf Y(X):
def method1(self):
print('Y sınıfında X sınıfının değiştirilmiş ilk özelliğiyim')
def method3(self):
print('Y sınıfının bir özelliğiyim')
nesne = Y()
obj.method1()
Çıktı:
Y sınıfındaki X sınıfının değiştirilmiş ilk özelliğiyim
method1, Y sınıfı tarafından geçersiz kılındı.
upGrad'da Veri Bilimi Kurslarını çevrimiçi öğrenin
Python'da Yöntem Aşırı Yüklemesi
Python'da yöntem aşırı yüklemesiyle ilgili sorun, Python'un varsayılan olarak bunu desteklememesidir. Ancak, aynısını yapmak için geçici çözümler vardır.
Sorun
Aşağıdaki kodu ele alalım:
tanım ekle(a, b):
s = a + b
baskı(lar)
tanım ekle(a,b,c):
s = a + b + c
baskı(lar)
# add(8, 9) hata gösteriyor
ekle(8, 9, 2)
İlk bakışta, kod iyi görünüyor, ancak onu iki argümanla çalıştırmayı denediğinizde, Python size bir hata gösterecektir çünkü Python'da, aynı isimde fakat farklı sayıda argümana sahip birden fazla metodunuz olduğunda, sadece en son tanımlanan yöntem kullanılabilir.
Python'da bu yöntem aşırı yükleme sorununun üstesinden gelmenin iki farklı yolu vardır.
1: Aynı yöntemlerin kullanılması, argümanların veri tipine göre farklılık gösterir.
Python'da bir yönteme değişken sayıda argüman iletmeye izin veren *args ile birlikte veri türünü bilmek için bir argüman görebiliriz. Daha sonra, yöntemin girdiye göre nasıl davrandığını kontrol etmek için if ifadelerini kullanabiliriz.
KOD:
def ekle(dt, *args):
eğer dt =='int':
s = 0
eğer dt =='str':
s = ”
bağımsız değişkenlerde x için:
s = s + x
baskı(lar)
ekle('int', 11, 9)
add(“str”, “Merhaba”, “Nasılsın?”)
Çıktı:
20
Nasılsın?
Bu, Python'da yöntem aşırı yüklemesini uygulayan ilk geçici çözümdü.
Popüler Veri Bilimi Kurslarımızı keşfedin
IIITB'den Veri Biliminde Yönetici Yüksek Lisans Programı | İş Karar Verme için Veri Biliminde Profesyonel Sertifika Programı | Arizona Üniversitesi'nden Veri Biliminde Bilim Ustası |
IIITB'den Veri Biliminde İleri Düzey Sertifika Programı | Maryland Üniversitesi'nden Veri Bilimi ve İş Analitiğinde Profesyonel Sertifika Programı | Tüm Veri Bilimi Kurslarını Görüntüle |
2: Çoklu Sevk Dekoratörünü Kullanma (Daha verimli yol)
Çoklu Gönderim Dekoratörü daha az geçici bir çözümdür ve tam olarak olması gerektiği gibi çalışır. pip3 kullanarak kurabilirsiniz.
pip3 birden çok gönderi yükle
KOD:
çoklu gönderim ithalat gönderiminden
@dispatch(int,int) # 2 tamsayı argümanı için
tanım ekle(n1,n2):
s = n1 + n2
baskı(lar)
@dispatch(int,int,int) # 3 tamsayı argümanı için
tanım ekle(n1,n2,n3):
s = n1 + n2 + n3
baskı(lar)
@dispatch(float,float,float) # kayan nokta argümanları için
tanım ekle(n1,n2,n3):
s = n1 + n2 + n3
baskı(lar)
ekle(5,2)
ekle(6,1,4)
ekle(3.4,1.2,5.6)
Çıktı:
7
11
10.2
Yürütme sırasında, gönderici, yöntemin farklı uygulamalarını depolayan ve yöntem çağrılırken geçirilen argümanların türüne ve sayısına bağlı olarak seçilecek yöntemi belirleyen yeni bir nesne oluşturur. Python'da bu şekilde aşırı yükleme yöntemi daha verimlidir.
Popüler Veri Bilimi Makalelerimizi okuyun
Veri Bilimi Kariyer Yolu: Kapsamlı Bir Kariyer Rehberi | Veri Bilimi Kariyer Gelişimi: İşin Geleceği burada | Veri Bilimi Neden Önemlidir? Veri Biliminin İşletmeye Değer Katmasının 8 Yolu |
Yöneticiler için Veri Biliminin Uygunluğu | Her Veri Bilimcisinin Sahip Olması Gereken Nihai Veri Bilimi Hile Sayfası | Veri Bilimcisi Olmanız İçin En Önemli 6 Neden |
Veri Bilimcisinin Hayatında Bir Gün: Ne yapıyorlar? | Efsane Bozuldu: Veri Biliminin Kodlamaya ihtiyacı yok | İş Zekası ve Veri Bilimi: Farklar nelerdir? |
Sonuçlar
Veri Bilimi alanına girmek istiyorsanız, Python atılacak iyi bir ilk adımdır. Daha derine dalmak ve konuyu daha fazla incelemek için, IIIT-Bangalore tarafından upGrad ile birlikte Veri Biliminde Yönetici Programı gibi gelişmiş çevrimiçi sertifika kurslarına göz atabilirsiniz . Bu program konunun önemli yönlerini kapsar ve daha fazla beceri kazanmak isteyen meraklılar için iş yardımı, 1:1 Mentorluk, çevrimiçi destek, canlı dersler ve isteğe bağlı ek modüller gibi birçok ek fayda sağlar.
Python'da bir işlev ve bir yöntem arasındaki fark nedir?
Python'da iki tür işlev vardır: yerleşik işlevler ve kullanıcı tanımlı işlevler. print() ve len() yerleşik işlevlerin örnekleridir. Python'da kullanıcı tanımlı fonksiyonlar, tipik bir programda belirli bir görevi birden fazla yapmak için kendimizi tanımlayabileceğimiz fonksiyonlardır. Yöntem, bir işleve benzer, ancak yöntemlerin bir sınıfa ait olması ve yalnızca bir nesne üzerinde çağrılabilmesi dışında. (Sözdizimi: obj.method())
Python ve R arasında nasıl seçim yapabilirim?
Python ve R, Veri Bilimi için kullanılan en iyi iki dildir. Neyi kullanacağınız, hedeflediğiniz şirket, proje türü, müşteri gereksinimleri vb. gibi çeşitli faktörlere bağlı olsa da, genel olarak programlamaya yeni başlıyorsanız, büyük ölçekli uygulamalar oluşturan bir mühendislik ortamında çalışıyorsanız, Python harika bir seçimdir. Öte yandan, önceden programlama deneyiminiz varsa ve veri analizi görevlerini hızlı bir şekilde yürütmek ve istatistiksel olarak daha iyi bir karar vermek için verilerinizi güzel grafikler kullanarak görselleştirmek istiyorsanız, gidilecek yol R'dir.
Veri Biliminde uzmanlaşmak ne kadar sürer?
Herkesin kendi öğrenme hızı vardır. Her ne kadar önceden programlama deneyimi olmayan yeni başlayanlar için temellerinizi güçlü hale getirmeniz 6-7 ay kadar sürecektir. Bunu yayınlayın, yine ne kadar pratik yaptığınıza ve üzerinde çalışacağınız projelere bağlı. Çevrimiçi bir sertifikayı takip ederseniz, yaklaşık bir yıl içinde ustalaşabilmeniz gerekir.