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

  • CNET

    CNET

    5 Mayıs 2006
  • Marques Brownlee

    Marques Brow

    21 Mart 2008
  • RomanAtwood

    RomanAtwood

    18 Kasım 2009