1. 程式人生 > >python裡面的介面和抽象類有什麼不同?

python裡面的介面和抽象類有什麼不同?

原文:http://talk.2xkt.com/t/topic/219

在python中沒有介面,你可以 定義一個類,裡面的方法是空實現,可以簡單新增一個pass語句。為什麼python裡面沒有介面呢?因為Python裡面可以實現多重繼承。

其他的一些語言例如:java有介面的原因是沒有多重繼承,只能通過介面實現。

class SomeAbstraction( object ):
    pass # 沒有實現

class Mixin1( object ):
    def something( self ):
        pass # 一個實現

class Mixin2( object ):
    def something( self ):
        pass # 另外一個實現

class Concrete1( SomeAbstraction, Mixin1 ):
    pass

class Concrete2( SomeAbstraction, Mixin2 ):
    pass