python類繼承用法實例分析
本文實例講述了python類繼承用法。分享給大家供大家參考。具體方法如下:
#!/usr/bin/python
# Filename: inherit.py
class SchoolMember:
'''Represents any school member.'''
def __init__(self, name, age):
self.name = name
self.age = age
print'(Initialized SchoolMember: %s)'% self.name
def tell(self):
'''Tell my details.'''
print'Name:"%s" Age:"%s"'% (self.name, self.age),
class Teacher(SchoolMember):
'''Represents a teacher.'''
def __init__(self, name, age, salary):
SchoolMember.__init__(self, name, age)
self.salary = salary
print'(Initialized Teacher: %s)'% self.name
def tell(self):
SchoolMember.tell(self)
print'Salary: "%d"'% self.salary
class Student(SchoolMember):
'''Represents a student.'''
def __init__(self, name, age, marks):
SchoolMember.__init__(self, name, age)
self.marks = marks
print'(Initialized Student: %s)'% self.name
def tell(self):
SchoolMember.tell(self)
print'Marks: "%d"'% self.marks
t = Teacher('Mrs. Shrividya',40,30000)
s = Student('Swaroop',22,75)
members = [t, s]
for member in members:
member.tell()# works for both Teachers and Students
運行輸出結(jié)果如下:
(Initialized SchoolMember: Mrs. Shrividya) (Initialized Teacher: Mrs. Shrividya) (Initialized SchoolMember: Swaroop) (Initialized Student: Swaroop) Name:"Mrs. Shrividya" Age:"40" Salary: "30000" Name:"Swaroop" Age:"22" Marks: "75"
它是如何工作的
為了使用繼承,我們把基本類的名稱作為一個元組跟在定義類時的類名稱之后。然后,我們注意到基本類的__init__方法專門使用self變量調(diào)用,這樣我們就可以初始化對象的基本類部分。這一點十分重要——Python不會自動調(diào)用基本類的constructor,你得親自專門調(diào)用它。
我們還觀察到我們在方法調(diào)用之前加上類名稱前綴,然后把self變量及其他參數(shù)傳遞給它。
注意,在我們使用SchoolMember類的tell方法的時候,我們把Teacher和Student的實例僅僅作為SchoolMember的實例。
另外,在這個例子中,我們調(diào)用了子類型的tell方法,而不是SchoolMember類的tell方法??梢赃@樣來理解,Python總是首先查找對應(yīng)類型的方法,在這個例子中就是如此。如果它不能在導(dǎo)出類中找到對應(yīng)的方法,它才開始到基本類中逐個查找?;绢愂窃陬惗x的時候,在元組之中指明的。
一個術(shù)語的注釋——如果在繼承元組中列了一個以上的類,那么它就被稱作多重繼承。
希望本文所述對大家的Python程序設(shè)計有所幫助。
相關(guān)文章
pygame實現(xiàn)井字棋之第三步邏輯優(yōu)化
這篇文章主要介紹了pygame實現(xiàn)井字棋之第三步邏輯優(yōu)化,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python的小伙伴們也有非常好的幫助,需要的朋友可以參考下2021-05-05

