Python Class, Overriding, Miras Alma Örnek

ArViX

Uzman üye
28 Şub 2013
1,273
0
cos a=cos bc
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()
 
Son düzenleme:

bhecy

Üye
17 Mar 2017
70
0
Tr
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..
 
Son düzenleme:

kondanta

Katılımcı Üye
29 Tem 2017
910
0
CNCF
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):

  [USER=70916]abs[/USER]tractmethod
  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
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.