SORU
21 EKİM 2008, Salı


Nasıl 'süper' Python kullanmak için?

Biri bana ne yapıyorsun arasındaki farkı açıklayabilir

class Child(SomeBaseClass):
    def __init__(self):
        super(Child, self).__init__()

ve bu:

class Child(SomeBaseClass):
    def __init__(self):
        SomeBaseClass.__init__(self)

super sadece tek bir miras ile derslerinde oldukça çok kullanıldığını gördüm. Çoklu kalıtım için anlayabiliyorum ama avantajları böyle bir durumda bunu kullanarak ne olduğu belirsiz.

CEVAP
21 EKİM 2008, Salı


Tek miras super() faydaları minimal çoğunlukla, üst yöntemlerini kullanan her yöntemi sabit-kod temel sınıf adına gerek yok.

Ancak, neredeyse imkansız super() olmadan birden çok devralma kullanmak için. Bu gibi mixins, arayüzler, soyut sınıflar, vb ortak cümleler içerir. Bu daha sonra senin genişleten kodu uzanır. Eğer sonradan biri Child ve kendisine dahil ederse, genişletilmiş bir sınıf yazmak istedim eğer kod düzgün çalışmayacaktır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011
  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • InsideBlackBerry

    InsideBlackB

    14 Aralık 2009