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ş:
Arayüz ve soyut sınıf arasındaki fark ...
Nasıl bir Arayüz ve Soyut bir sınıf ar...
Python: sınıf ve örnek öznitelikleri a...
@Staticmethod ve @Python classmethod a...
Statik sınıf ve singleton deseni arası...