python類繼承用法執行個體分析

來源:互聯網
上載者:User
本文執行個體講述了python類繼承用法。分享給大家供大家參考。具體方法如下:

#!/usr/bin/python# Filename: inherit.pyclass 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.salaryclass 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.markst = 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

運行輸出結果如下:

(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變數調用,這樣我們就可以初始化對象的基本類部分。這一點十分重要——Python不會自動調用基本類的constructor,你得親自專門調用它。

我們還觀察到我們在方法調用之前加上類名稱首碼,然後把self變數及其他參數傳遞給它。

注意,在我們使用SchoolMember類的tell方法的時候,我們把Teacher和Student的執行個體僅僅作為SchoolMember的執行個體。

另外,在這個例子中,我們調用了子類型的tell方法,而不是SchoolMember類的tell方法。可以這樣來理解,Python總是首先尋找對應類型的方法,在這個例子中就是如此。如果它不能在匯出類中找到對應的方法,它才開始到基本類中逐個尋找。基本類是在類定義的時候,在元組之中指明的。

一個術語的注釋——如果在繼承元組中列了一個以上的類,那麼它就被稱作多重繼承。

希望本文所述對大家的Python程式設計有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.