Python'da Kalıtım | Python Kalıtımı [Örnekle]
Yayınlanan: 2020-12-14Python en popüler programlama dillerinden biridir. Python 2 sürümünden Python 3'e iniş ve çıkışlarla dolu bir geçişe rağmen , Nesne yönelimli programlama dili popülaritesinde büyük bir sıçrama gördü.
Bir Python geliştiricisi olarak bir kariyer planlıyorsanız, daha yüksek bir ödeme almanız zorunludur. Bir Python geliştiricisi için ortalama maaş yılda yaklaşık 119.082 dolar. Ancak Python öğrenme programına devam etmeden önce bilmeniz gereken bir şey var: Python'da Kalıtım. Python ve diğer araçlarda uzmanlık kazanmak istiyorsanız, veri bilimi sertifikalarımıza göz atın.
Öncelikle Python'da kalıtımın tam olarak ne olduğundan başlayalım.
İçindekiler
Python'da kalıtım nedir?
Tıpkı bir ebeveyn-çocuk ilişkisi gibi, kalıtım da temel sınıfa göre türetilmiş sınıflarda çalışır. Her "Derived" sınıf, bir "Base" sınıfından miras alır. Miras, UML veya Birleşik Modelleme Dili'nde temsil edilir. Geliştiricilerin yazılım sistemleri öğelerini belirlemelerine, yapılandırmalarına ve belgelemelerine yardımcı olmak için bir dizi entegre diyagram içeren standart bir modelleme dilidir.
Kalıtım ilişkisi, diğer sınıflardan miras alan sınıfları türetilmiş, alt sınıf veya alt tür sınıfları olarak tanımlar. Temel sınıf, bir alt sınıfın miras aldığı kaynak olarak kalır. Örneğin, "Animal" adlı bir Temel sınıfınız var ve bir "Aslan", Türetilmiş bir sınıftır. Miras Aslan Bir Hayvandır.
Öyleyse soru şu: "Aslan" sınıfı "Hayvan"dan ne miras alıyor?
Bir "Aslan" sınıfı miras alır
- Arayüz
- Uygulamak
Not: Liskov ikame ilkesi olarak bilinen bir uygulamada Türetilmiş Sınıf nesnelerini Temel Sınıf nesneleriyle değiştirebilirsiniz . Bir bilgisayar programında Q'nun alt türü olarak P nesnesi varsa, özellikleri değiştirmeden P'yi Q ile kolayca değiştirebileceğinizi gösterir.
Ayrıca Ödeme: Hindistan'da Python Geliştirici Maaşı
Python'da Kalıtımın Avantajları
- Python'da kalıtım, geliştiricilerin nesneleri yeniden kullanmasına yardımcı olur.
- Bir sınıf, temel sınıfı her devraldığında, üst nesnenin işlevselliğine erişir.
- Temel sınıf zaten test edildiğinden, kalıtım nedeniyle yeniden kullanılabilirlik de güvenilirdir.
- Düşük geliştirme süresi ve maliyeti
- Arayüzün sınıflar arasında standardizasyonu kolaylaşır.
- Kod fazlalığını azaltır ve genişletilebilirliği iyileştirmeye yardımcı olur
- Sınıf kitaplıklarının oluşturulması kolaylaşır.
Python'da Kalıtım Türleri
Tek Kalıtım
Tek kalıtımın ne olduğunu zaten gördük - “Türev” sınıfının “Temel” sınıftan kalıtımı. Bir örnek üzerinden anlayalım,
sınıf Ülke:
def ShowCountry(self):
print(“Burası İspanya”);
sınıf Devlet(Ülke):
def ShowState(self):
print(“Bu Durum”);
st =Durum();
st.ShowCountry();
st.ShowState();
Çok Düzeyli kalıtım
Python birkaç nesneden oluşur ve çok seviyeli kalıtımla, sınıf işlevlerini yeniden kullanmak için sonsuz olasılık vardır. Çok seviyeli kalıtım, türetilmiş bir sınıf başka bir türetilmiş sınıfı miras aldığında belgelenir. İşlevleri devralabilecek türetilmiş sınıfların sayısında bir sınır yoktur ve bu nedenle çok düzeyli kalıtım Python'da yeniden kullanılabilirliği geliştirmeye yardımcı olur.
İşte çok düzeyli kalıtım örneği
sınıf Hayvan:
def konuş(kendi kendine):
print(“Hayvan Konuşuyor”)
#Köpek alt sınıfı, Animal temel sınıfını miras alır
sınıf Köpek(Hayvan):
def bark(self):
print(“köpek havlaması”)
# Dogchild alt sınıfı, başka bir Dog alt sınıfını miras alır
sınıf DogChild(Köpek):
kesinlikle yemek(self):
print(“Ekmek yemek…”)
d = KöpekÇocuk()
d.bark()
d.konuş()
d.yemek()
Çoklu Kalıtım
Python, geliştiricilerin farklı temel sınıflardan birden çok işlevi ve özelliği türetilmiş tek bir sınıfa devralmasına olanak tanır. Kapsamlı araçlar veya kodlama olmadan birden çok bağımlılığı devralmanıza izin verebileceğinden, çoğunlukla harika bir özelliktir.
Çoklu kalıtım için bir örneğe bakalım.
sınıf Hesaplama1:
def Toplama(self,a,b):
a+b'yi döndür;
sınıf Hesaplama2:
def Çarpma(self,a,b):
a*b'yi döndür;
sınıf Türetilmiş(Hesaplama1,Hesaplama2):
def Divide(self,a,b):
a/b'yi döndür;

d = Türetilmiş()
print(d.Toplam(10,20))
print(d.Çarpma(10,20))
yazdır(d.Böl(10,20))
Kontrol edin: Python ile Konuşmayı Metne Dönüştürme
Türetilmiş Sınıf nasıl belirlenir?
Python, geliştiricilerin bir sınıfın türetilmiş bir sınıf mı yoksa bir temel sınıf mı olduğunu kontrol etmesine yardımcı olan yerleşik bir issubclass() işleviyle birlikte gelir. Bu işlevi çalıştırdığınızda, alt sınıf veya Türetilmiş sınıf için “True”, Temel sınıf için False sonucuyla döner.
Bir geliştirici bu örnek üzerinden sınıfı kontrol edebilir.
sınıf myAge:
yaş = 36
sınıf myObj(myAge):
isim = "John"
yaş = yaşım
x = issubclass(myObj, myAge)
Python'da sınıf hiyerarşisi nasıl oluşturulur?
Python'da kalıtım, sınıf hiyerarşileri oluşturmaya yardımcı olur. Tüm göreli sınıflar, birbirleriyle iletişim kurmak için ortak bir arabirimi paylaşacaktır. Bir Base sınıfı, arayüzü tanımlar. Türetilmiş sınıflar, arabirimin özel uzmanlaşmasını sağlayabilir. Burada, sınıf hiyerarşisini göstermek için bir İK modeli araştırıyoruz.
İK sistemi, farklı şirket çalışanları için maaş bordrosunu işleyecektir; her işçi bir kimlik ile tanımlanır ve hesaplanacak farklı bordro pozisyonlarına sahiptir.
Öncelikle “Base” nesnesi olarak bir bordro sınıfı oluşturalım.
# hr.py'de
sınıf Bordro Sistemi:
def hesapla_payroll(kendi, işçiler):
print('Bordro Hesaplanıyor')
print('===================')
işçilerde çalışan için:
print(f'Payroll for: {worker.id} – {worker.name}')
print(f'- Tutarı kontrol edin: {worker.calculate_payroll()}')
Yazdır(")
PayrollSystem , çalışanın bilgilerini toplayan, kimliğini, adını yazdıran ve bordro tutarını kontrol eden bir .calculate_payroll () yöntemini yürütür . Şimdi, her çalışan türü için standart arabirimi ele alan bir temel sınıf çalışanı çalıştırıyorsunuz:
# hr.py'de
sınıf Çalışanı:
def __init__(self, id, name):
self.id = kimlik
self.name = isim
Şirketteki tüm çalışan türleri için bir Çalışan temel sınıfı oluşturmak, İK sistemi için hiyerarşiyi kolaylaştırır. Her çalışana bir ad ve kimlik atanır. İK sistemi, çalışanın .calculate_payroll() arabirimi aracılığıyla haftalık maaşıyla ilgili verileri sağlamasını gerektirir. Bu arayüzün yürütülmesi, çalışanın türüne göre farklılık gösterebilir.
Mutlaka Okuyun: Python Mülakat Soruları
Çözüm
Burada farklı Python sınıfları oluşturmayı, aralarında ilişkiler kurmayı ve hatta sınıf hiyerarşisini belirlemeyi öğrendik. Ancak Python'da kalıtım burada bahsedilen işlevlerle sınırlı değildir.
Makine Öğrenimi ve Yapay Zekada İleri Düzey Sertifikasyon : Hindistan'ın en iyi eğitim kurumlarından biri olan IIT madras, bireylerin bu kursla Makine Öğrenimi hakkında tam bilgi sahibi olmaları için ileri Düzey bir Makine Öğrenimi kursu yapmak üzere upGrad ile ortaklık kurdu.
Veri bilimi hakkında bilgi edinmek istiyorsanız, IIIT -B & upGrad'ın çalışan profesyoneller için oluşturulmuş ve 10'dan fazla vaka çalışması ve proje, uygulamalı uygulamalı atölye çalışmaları, endüstri uzmanlarıyla mentorluk, 1 Endüstri danışmanlarıyla bire bir, en iyi firmalarla 400+ saat öğrenim ve iş yardımı.
Python'da kalıtım neden önemlidir?
Kalıtım, bir üst sınıfın özelliklerini bir alt sınıfa aktarma sürecini ifade eder. Nesne yönelimli programlama (OOP) kavramıdır ve Python'da önemlidir. Bunun nedeni, kalıtımın kodun yeniden kullanılabilirliğini sağlamasıdır; bu, aynı kodu tekrar tekrar yazmak yerine, bir alt sınıfta ihtiyaç duyduğumuz öznitelikleri devralabileceğimiz anlamına gelir. Ebeveyn ve alt sınıflar arasındaki gerçek dünya ilişkisini gösterdiği için anlaşılması ve uygulanması da kolaydır. Geçişli bir yapıya sahiptir. Tüm alt sınıflar, özelliklerini ebeveynlerinden miras aldığından, tüm alt sınıflar da aynı şekilde üst sınıfın işlevlerini kullanır.
Python öğrenirken kalıtım gerekli midir?
Evet, Python öğrenirken kalıtım öğrenmek gereklidir. Büyük python uygulamaları, mevcut pazardaki python programcılarının sayısında bir artış gerektiriyor. Bu artış Python öğrenen insan sayısında artışa neden oldu. Python programlama dili, kalıtım gibi kavramlar açısından zengindir. Bu Nesne yönelimli programlama dilindeki temel kavramlardan biri kalıtımdır. Kalıtım, kodun yeniden kullanılabilirliğine, okunabilirliğine ve özellik geçişine izin verdiğinden, Python öğrenirken öğrenmek zorunludur. Kalıtım, doğru ve verimli kod oluşturmaya yardımcı olur.
Python'da hangi tür kalıtım desteklenmez?
Python, diğer nesne yönelimli programlama dillerinin aksine, çoklu kalıtım dahil tüm kalıtım biçimlerine izin verir. Kalıtım kavramını kullanarak önceden var olanlardan yeni sınıflar oluşturmak mümkündür. Bu, kodun yeniden kullanımını kolaylaştırır. Üst sınıfta belirtilen yöntemler alt sınıfta da kullanılır. C++ aynı zamanda bu tür bir kalıtımı mümkün kılarken, Python'un gelişmiş ve iyi tasarlanmış metodolojisinden yoksundur. Python, birçok türde kalıtımı tek bir kod parçasında uygulamamıza izin veren Hibrit kalıtım bile sunar. Kodun yeniden kullanılabilirliği bir kalıtımın gücü olduğundan, Python ile çalışırken çok çeşitli uygulamalarda yardımcı olur.