class Entity():
def __init__(self, object_type):
print('parent class init called')
self.object_type = object_type
def get_context_length(self):
raise Exception('get_context_length not implemented')
def print_title(self):
print(self.title)
class Document(Entity):
def __init__(self, title, author, context):
print('Document class init called')
Entity.__init__(self, 'document')
self.title = title
self.author = author
self.__context = context
def get_context_length(self):
return len(self.__context)
class Video(Entity):
def __init__(self, title, author, video_length):
print('Video class init called')
Entity.__init__(self, 'video')
self.title = title
self.author = author
self.__video_length = video_length
def get_context_length(self):
return self.__video_length
首先需要注意的是構造函數。每個類都有構造函數,繼承類在生成對象的時候,是不會自動調用父類的構造函數的,
因此你必須在 init() 函數中顯式調用父類的構造函數。
它們的執行順序是 子類的構造函數 -> 父類的構造函數。