SORU
16 Aralık 2008, Salı


Python soyut sınıf ve arayüz arasındaki fark

Python soyut sınıf ve arayüz arasındaki fark nedir?

CEVAP
16 Aralık 2008, Salı


Bazen göreceğiniz şey şudur:

class Abstract1( object ):
    """Some description that tells you it's abstract,
    often listing the methods you're expected to supply."""
    def aMethod( self ):
        raise NotImplementedError( "Should have implemented this" )

Python (ve ihtiyacı yok) Arayüzü resmi bir sözleşme olmadığı için, soyutlama ve arayüz arasında Java tarzı bir ayrım yok. Eğer birisi resmi bir arabirim tanımlamak için çaba olursa, bu soyut bir sınıf olacak. Tek farkları Fibonacci sayıları belirtilen niyet olurdu.

Ve soyut ve arayüz arasındaki fark ördek yazdığınız zaman hairsplitting bir şey.

Java çoklu kalıtım yok çünkü arayüzleri kullanır.

Python çoklu miras olduğundan, ayrıca böyle bir şey görebilirsiniz

class SomeAbstraction( object ):
    pass # lots of stuff - but missing something

class Mixin1( object ):
    def something( self ):
        pass # one implementation

class Mixin2( object ):
    def something( self ):
        pass # another

class Concrete1( SomeAbstraction, Mixin1 ):
    pass

class Concrete2( SomeAbstraction, Mixin2 ):
    pass

Bu ayrık olan beton sınıflarını oluşturmak için mixins ile soyut üst sınıf bir tür kullanır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunnyboxx

    bunnyboxx

    17 NİSAN 2008
  • Gan Eden Productions

    Gan Eden Pro

    11 HAZİRAN 2011
  • merumputdotcom

    merumputdotc

    24 ŞUBAT 2012