İPUCU

Python Artificial Intelligence’da en çok kullanılan dildir ve gerekli dökümanların paylaşım alanlar burada paylaşılmaktadır.

Seçenekler

Python Class, Overriding, Miras Alma Örnek

ArViX - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
02/2013
Nereden:
cos a=cos bc
Mesajlar:
1.255
Konular:
83
Teşekkür (Etti):
118
Teşekkür (Aldı):
264
Ticaret:
(0) %
06-02-2018 01:13
#1
Python Class, Overriding, Miras Alma Örnek
Konu başlığında saydığım yapılarla ilgili basit bir örnek yazdım buyrun
Kod:
class iphone():
    def __init__(self,model,isletimsistemi,surum,ucret):
        self.model = model
        self.isletimsistemi = isletimsistemi
        self.surum = surum
        self.ucret = ucret
    def bilgi(self):
        print("""
        I PHONE Model : {}
        I PHONE İşletim Sistemi : {}
        I PHONE Sürüm : {}
        I PHONE Ücret : {}
        """.format(self.model,self.isletimsistemi,self.surum,self.ucret))

class samsung(iphone):
    def __init__(self,model,isletimsistem,surum,ucret,root):
        super().__init__(model,isletimsistem,surum,ucret)
        self.root = root

    def bilgi(self):
        print("""
        Samsung Model : {}
        Samsung İşletim Sistemi : {}
        Samsung Sürüm : {}
        Samsung Ücret : {}
        Samsung Telefon Rootlu Mu : {}
        """.format(self.model,self.isletimsistemi,self.surum,self.ucret,self.root))



telefon = samsung("S7 Edge","Nougat","7.0",3500,"Evet")
telefon.bilgi()

telefon2 = iphone("I PHONE X","İOS","11",5500)
telefon2.bilgi()
---------------------

Bilmediklerimi ayaklarımın altına alsaydım, başım göğe ererdi.
Evrimin bir parçasıyım, durmak bitmek demektir


8/N3n1K1/6B1/1Pk2p2/2b2P2/6P1/7P/8 b - -
Konu ArViX tarafından (06-02-2018 01:25 Saat 01:25 ) değiştirilmiştir.
osm4nl1evl4d1 Teşekkür etti.
bhecy - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2017
Nereden:
Tr
Mesajlar:
67
Konular:
9
Teşekkür (Etti):
84
Teşekkür (Aldı):
11
Ticaret:
(0) %
19-03-2018 20:03
#2
Biraz daha açıklama yaparsan bence çok güzel olacaktır. Emeğine sağlık.

örneğin super() kullanımının yararı...

örneğin samsung classında iphone classının özelliklerinin miras alındığını gibi...

örneğin samsung classı içinde __init__ ile overriding yapıldığının vs..
--------------------- " Hayat devam ediyor / Life goes on [2Pac] "
Konu bhecy tarafından (19-03-2018 20:04 Saat 20:04 ) değiştirilmiştir.
kondanta - ait Kullanıcı Resmi (Avatar)
Deneyimli Yazılımcı
Üyelik tarihi:
07/2017
Nereden:
CNCF
Mesajlar:
912
Konular:
36
Teşekkür (Etti):
33
Teşekkür (Aldı):
263
Ticaret:
(0) %
19-03-2018 21:48
#3
Yazdığın kod doğru, ancak kurduğun mantık yanlış. Yapmış olduğun şey samsung bir iphone demekle aynı şey diyebilirim. Şayet Samsungu Phone diye bir classdan inherit etseydin, samsung is a phone gibi bir anlam çıkarabilir idik. Hazır overridingden bahsediyorken, her ne kadar pythonda biraz absürt dursa da, abstraction yapıp bunu derived classda implement etmek de hoş durabilir.

Kod:
 
from abc import ABC, abstractmethod
class Phone(ABC):

  @abstractmethod
  def bilgi(self): pass #will be implemented in derived class

class Iphone(Phone):
  def __init__(self, model):
    self.model = model
    
  def bilgi(self):
    print("Model : {}". format(self.model))
    
    
    

i = Iphone("Iphone");
i.bilgi() #output: Model: Iphone
---------------------

DevOps Engineer

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı