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

  • kev5124

    kev5124

    9 Kasım 2008
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010
  • Tips On Linux

    Tips On Linu

    26 Temmuz 2008