日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
對于Python繼承問題全解析

面向?qū)ο笳Z言的最大有點(diǎn)是讓編程人員對其代碼可以重用,那么怎么實(shí)現(xiàn)這種方法呢?實(shí)現(xiàn)這種重用的方法的關(guān)鍵是通過Python繼承機(jī)制。繼承完全可以理解成類之間的類型。

創(chuàng)新互聯(lián)專注于大石橋網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供大石橋營銷型網(wǎng)站建設(shè),大石橋網(wǎng)站制作、大石橋網(wǎng)頁設(shè)計(jì)、大石橋網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造大石橋網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供大石橋網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

假設(shè)你想要寫一個(gè)程序來記錄學(xué)校之中的教師和學(xué)生情況。他們有一些共同屬性,比如姓名、年齡和地址。他們也有專有的屬性,比如教師的薪水、課程和假期,學(xué)生的成績和學(xué)費(fèi)。

你可以為教師和學(xué)生建立兩個(gè)獨(dú)立的類來處理它們,但是這樣做的話,如果要增加一個(gè)新的共有屬性,就意味著要在這兩個(gè)獨(dú)立的類中都增加這個(gè)屬性。這很快就會(huì)顯得不實(shí)用。

一個(gè)比較好的方法是創(chuàng)建一個(gè)共同的類Python繼承稱為SchoolMember然后讓教師和學(xué)生的類Python繼承 這個(gè)共同的類。即它們都是這個(gè)類型(類)的子類型,然后我們再為這些子類型添加專有的屬性。

使用這種方法有很多優(yōu)點(diǎn)。如果我們增加/改變了SchoolMember中的任何功能,它會(huì)自動(dòng)地反映到子類型之中。例如,你要為教師和學(xué)生都增加一個(gè)新的身份證域,那么你只需簡單地把它加到SchoolMember類中。

然而,在一個(gè)子類型之中做的改動(dòng)不會(huì)影響到別的子類型。另外一個(gè)優(yōu)點(diǎn)是你可以把教師和學(xué)生對象都作為SchoolMember對象來使用,這在某些場合特別有用,比如統(tǒng)計(jì)學(xué)校成員的人數(shù)。一個(gè)子類型在任何需要父類型的場合可以被替換成父類型,即對象可以被視作是父類的實(shí)例,這種現(xiàn)象被稱為多態(tài)現(xiàn)象。

另外,我們會(huì)發(fā)現(xiàn)在 重用父類的代碼的時(shí)候,我們無需在不同的類中重復(fù)它。而如果我們使用獨(dú)立的類的話,我們就不得不這么做了。在上述的場合中,SchoolMember類被稱為 基本類 或 超類 。而Teacher和Student類被稱為 導(dǎo)出類或子類。

 
 
 
  1. #!/usr/bin/python  
  2. # Filename: objvar.py  
  3.  
  4. class Person:  
  5.     '''Represents a person.'''  
  6.     population = 0 
  7.  
  8.     def __init__(self, name):  
  9.         '''Initializes the person's data.'''  
  10.         self.name = name  
  11.         print '(Initializing %s)' % self.name  
  12.  
  13.         # When this person is created, he/she  
  14.         # adds to the population 

為了使用Python繼承,我們把基本類的名稱作為一個(gè)元組跟在定義類時(shí)的類名稱之后。然后,我們注意到基本類__init__方法專門使用self變量調(diào)用,這樣我們就可以初始化對象的基本類部分。

這一點(diǎn)十分重要——Python不會(huì)自動(dòng)調(diào)用基本類的constructor,你得親自專門調(diào)用它。我們還觀察到我們在方法調(diào)用之前加上類名稱前綴,然后把self變量及其他參數(shù)傳遞給它。注意,在我們使用SchoolMember類的tell方法的時(shí)候,我們把Teacher和Student的實(shí)例僅僅作為SchoolMember的實(shí)例。

另外,在這個(gè)例子中,我們調(diào)用了子類型的tell方法,而不是SchoolMember類的tell方法??梢赃@樣來理解,Python總是首先查找對應(yīng)類型的方法,在這個(gè)例子中就是如此。如果它不能在導(dǎo)出類中找到對應(yīng)的方法,它才開始到基本類中逐個(gè)查找?;绢愂窃陬惗x的時(shí)候,在元組之中指明的。


當(dāng)前標(biāo)題:對于Python繼承問題全解析
URL分享:http://www.5511xx.com/article/djjiosg.html