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

  • iBand IguJoo

    iBand IguJoo

    25 AĞUSTOS 2006
  • Missouri Star Quilt Company

    Missouri Sta

    18 ŞUBAT 2009
  • wwjoshdo

    wwjoshdo

    25 Mayıs 2009