python的多繼承,python繼承

來源:互聯網
上載者:User

python的多繼承,python繼承

  昨天被室友拖著去吃雞去了,所以沒有學習,該反省。只有今天多學習一點,將昨天的補回來。

  今天學習了python的多繼承。

  覺得多繼承還是有點難,今天在學習多繼承的實收,一不小心將一個父類的建構函式的名稱寫錯了,然後就出現了bug,找了好久,才發現是上面寫錯了,結果編輯器報錯的地方與我真正出錯的地方差了好遠,所以大家寫代碼要仔細一點,找bug真的是惱火。

  好了,言歸正傳,開始本文。

 

 

class  People(object):   # 這是第一個父類
name=""
age=0
__weight=0 # 私人屬性

def __init__(self,name,age,weight):
self.name=name
self.age=age
self.__weight=weight

def speak(self):
print(self.name,self.age,self.__weight)


# 在繼承類的時候 類名後面的括弧裡寫的就是你需要繼承的類,可以看出來這是一個單繼承
class Student(People): #這裡定義了一個子類,而且繼承了上面的people類
grade=""
def __init__(self,name,age,weight,grade):
People.__init__(self,name,age,weight)
self.grade=grade

def print_sutdent(self):
print(self.grade)

# 在這兒再建立一個類

class Speaker(object):
topic=""
name=""
def __init__(self,name,topic):
self.name=name
self.topic=topic

def print_speak(self):
print(self.name,self.topic)

# 這兒就是今天的主角了,類的多繼承,可以看到,類名之後的括弧裡,就是寫的你需要繼承的父類的名稱。
# 注意,父類的書序很重要,比如說你需要調用一個子類沒有而父類卻有的方法,那麼python解譯器將會在父類之中從左至右尋找你調用的方法。

class Sample(Student,Speaker):
a=""
# 這裡很重要,這裡是繼承父類的建構函式的寫法
def __init__(self,name,age,weight,grade,topic,a):
Student.__init__(self,name,age,weight,grade)
Speaker.__init__(self,name,topic)
self.a=a

# 這裡叫做方法重寫:意思就是如果父類中存在這個方法,但是功能不能滿足子類的需求,那麼你就可以在子類中重新定義一個函數名稱和父類的相同,
#然後這個執行個體在調用該方法的時候,就會調用子類中的你重寫的方法。
def print_speak(self):
print(self.name,self.age,self.grade,self.topic,self.a)

# 使用子類產生執行個體

test=Sample("tim",25,80,99,"python",10)

# 調用子類中重寫的方法
test.print_speak()


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.