成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

對(duì)于Python繼承問(wèn)題全解析

開(kāi)發(fā) 后端
一個(gè)術(shù)語(yǔ)的注釋——在Python中,如果在繼承元組中列了一個(gè)以上的類,那么它就被稱作多重Python繼承。

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

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

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

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

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

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

另外,我們會(huì)發(fā)現(xiàn)在 重用父類的代碼的時(shí)候,我們無(wú)需在不同的類中重復(fù)它。而如果我們使用獨(dú)立的類的話,我們就不得不這么做了。在上述的場(chǎng)合中,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)用,這樣我們就可以初始化對(duì)象的基本類部分。

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

另外,在這個(gè)例子中,我們調(diào)用了子類型的tell方法,而不是SchoolMember類的tell方法。可以這樣來(lái)理解,Python總是首先查找對(duì)應(yīng)類型的方法,在這個(gè)例子中就是如此。如果它不能在導(dǎo)出類中找到對(duì)應(yīng)的方法,它才開(kāi)始到基本類中逐個(gè)查找。基本類是在類定義的時(shí)候,在元組之中指明的。

【編輯推薦】

  1. 如何使Python嵌入C++應(yīng)用程序?
  2. 深入探討Ruby與Python語(yǔ)法比較
  3. Python學(xué)習(xí)資料介紹分享
  4. Python學(xué)習(xí)經(jīng)驗(yàn)談:版本、IDE選擇及編碼解決方案
  5. 淺析Python的GIL和線程安全
責(zé)任編輯:chenqingxiang 來(lái)源: 清華大學(xué)出版社
相關(guān)推薦

2010-02-23 16:46:27

Python設(shè)計(jì)語(yǔ)言

2009-12-07 09:58:35

WCF性能

2010-02-05 14:34:11

Android操作系統(tǒng)

2010-02-05 15:22:14

2010-02-03 17:52:11

Python 2.0

2010-03-01 18:21:08

Python測(cè)試

2010-02-06 10:42:41

Android Ser生命周期

2010-02-06 17:17:17

Android手機(jī)

2022-07-29 07:36:01

虛擬機(jī)編程語(yǔ)言

2009-05-05 17:52:48

系統(tǒng)安全密碼安全Windows

2010-02-22 10:18:29

Python代碼

2010-02-24 16:33:28

Python功能

2010-03-01 14:28:46

Python進(jìn)程

2010-03-10 13:29:01

以太網(wǎng)交換機(jī)

2019-07-28 21:05:47

ICMPIP網(wǎng)絡(luò)協(xié)議

2010-02-24 09:18:15

Python操作語(yǔ)言

2010-07-20 09:45:04

Perl繼承

2011-08-29 14:50:08

jQuery插件

2021-05-14 11:05:38

MySQL慢日志數(shù)據(jù)庫(kù)

2010-02-23 15:29:43

Python 編輯器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩精品成人网 | 亚洲精品www久久久 www.蜜桃av | 日韩免费av | 免费视频一区二区三区在线观看 | 亚洲啪啪一区 | 久久精品久久久久久 | 成人网在线| 91精品国产91久久久久久不卞 | 精品亚洲一区二区 | 在线中文字幕视频 | av第一页| 999久久久国产精品 欧美成人h版在线观看 | 欧美在线一区视频 | 国产精品美女久久久久aⅴ国产馆 | 国产91亚洲精品一区二区三区 | 欧美成年人视频在线观看 | 亚洲一区二区三区免费在线 | 成人影院午夜 | 成人精品一区二区三区四区 | 综合久久av | 狠狠干夜夜草 | 欧美一级二级三级视频 | 久久国产美女视频 | 久久久91精品国产一区二区三区 | 一区精品在线观看 | 国产高清久久久 | 日韩二三区| 婷婷色综合 | 欧美精品二区三区 | 欧美日韩精品在线免费观看 | 欧美日韩久久 | 欧美爱爱视频 | 久久免费精品视频 | 日韩欧美在线观看一区 | 一区二区三区视频 | 鲁视频 | 久久久久久高清 | 日韩欧美视频在线 | 久一久| 精品视频在线播放 | 欧美另类视频 |