PY21 單繼承多繼承菱形繼承

2021-10-06 13:49:14 字數 4756 閱讀 3812

#__init__魔術方法(構造方法)

『』』觸發時機:例項化物件,初始化的時候觸發

功能:為物件新增成員

引數:引數不固定,至少乙個self引數

返回值:無

『』』class myclass():

definit(self):

print(11)

self.name = 「張婕」

print(22)

print(33)

obj = myclass()

print(44)

print(obj.name)

print(55)

class myclass():

definit(self,name):

# 物件.成員屬性(自定義) = 引數值

self.name = name

obj = myclass(「劉敏」)

print(obj.name)

「」「沒建立乙個物件,都會單獨占用乙個空間,建立的越多,占用的空間就越大」""

class children():

definit(self,name,skin):

self.name = name

self.skin = skin

def cry(self):

print("小孩下生直接哭~")

def drink(self):

print("小孩下生直接**奶~")

def __eat(self):

print("小孩自己吃自己的手指")

def pub_func(self):

print("該物件的名字是{},該物件的膚色是{}".format(self.name,self.skin))

# 注意點

def pub_func2(self,name,skin):

print("該物件的名字是{},該物件的膚色是{}".format(name,skin))

afanda = children(「王鐵鎚」,「藍色」)

afanda.cry()

afanda.pub_func()

dan = children(「王鋼蛋」,「黑色」)

dan.drink()

dan.pub_func()

bao = children(「王寶強」,「綠色」)

bao.pub_func()

bao.pub_func2(「尉翼麟」,「白色」)

「」"乙個類繼承另外乙個類,那麼該類就是子類(衍生類),被繼承的這個叫做父類(基類,超類)

繼承:(1)單繼承 (2)多繼承

python所有的類都預設繼承父類 object

「」"「」"

class human(object):

hair = 「金色」

*** = 「男」

def eat (self):

print("人天生就愛吃")

def la (self):

print("吃完就得拉")

def __****(self):

print("人天生就得**啪")

#(1)子父繼承之後,子類可以呼叫父類的所有共有成員

class man(human): #class man(父類)

pass

obj = man()#man(構造方法的引數)

print(obj.hair)

#(2)子父繼承之後,子類不可以呼叫父類的私有成員

#(3)子父繼承之後,子類可以重寫父類的同名方法

「」"「」"

子父繼承之後

如果子類裡面有該成員的屬性方法,優先呼叫自己的

如果沒有該成員,name呼叫父類的公有成員

如果都沒有,直接報錯:

「」"「」"

class children(human):

*** = 「女性」

def eat(self):

print(「小孩只能**」)

obj = children()

print(obj.***)

obj.eat()

「」"#(1)基本語法

「」"class father():

property = 「鬍子拉碴」

def f_hobby(self):

print(「吃喝嫖賭抽」)

class mother():

property = 「風韻猶存」

def m_hobby(self):

print(「坑蒙拐騙偷」)

class girl(mother,father):

pass

#例項化物件

obj = girl()

print(obj.property)

obj.m_hobby()

obj.f_hobby()

「」"「」"

(1)super本身是乙個類 super()是乙個物件 用於呼叫父類的繫結方法

(2)super()只應用在繫結方法中,預設自動傳遞self物件(前提super所在作用域存在self)

(3)super用途:解決複雜的多繼承呼叫順序

「」"print("<_____>")

class father():

property = 「鬍子拉碴」

def f_hobby(self):

print(「吃喝嫖賭抽」)

class mother():

property = 「風韻猶存」

def m_hobby(self):

print(「坑蒙拐騙偷」)

class son(mother,father):

property = 「吃睡覺打遊戲」

#1.利用類來呼叫父類的成員

def res1(self):

print(mother.property)

father.f_hobby(self)

#2.利用類呼叫父類的屬性和方法

"""self在呼叫父類成員的時候,如果本類裡有,先呼叫自己的,沒有,在呼叫父類的"""

def res2(self):

self.m_hobby()

print(self.property)

# 3.利用super呼叫父類的屬性和方法

""" super()只呼叫父類的相關公有成員,不會呼叫自己本類中成員,父類也沒有的話,直接報錯.

super() 特指只呼叫父類, 和 self不同.

"""def res3(self):

print(super())

print(super().property)

super().m_hobby()

obj = son()

obj.res3()

「」", >

風韻猶存

坑蒙拐騙偷

「」"「」"

human

man woman

children

「」"class bigman():

pass

class humen():

pty = 4

def feelt(self):

print(「原始人類天熱的時候,后羿射日1」)

print(self.pty) #1

print(「冷的時候,女媧補天2」)

class man(humen):

pty = 3

def feelt(self):

#self刺客接收的是children的物件

print(「熱 吹吹空調3」)

super().feelt()

print(「冷 吃雪糕4」)

class women(humen):

pty = 2

def feelt(self):

#self刺客接收的是children的物件

print(「re,穿吊帶5」)

super().feelt()

print(「冷 穿打**6」)

class children(man,women):

pty = 1

def feelt(self):

print(「熱 洗澡7」)

super().feelt()

#super呼叫方法時會攜帶者當前類的物件進行傳遞

print(「冷 進被窩8」)

obj = children()

obj.feelt() #73512648

「」"類.mro()返回的是方法呼叫順序的列表,針對的是多繼承下的同名方法,按照列表的順序依次呼叫

「」"lst = children.mro()

print(lst)

#[, , , , ]

「」「只要在乙個繼承鏈上即可(有血緣關係即可),應用範圍在類的身上」""

res = issubclass(children,man)

res = issubclass(children,women)

res = issubclass(children,humen)

res = issubclass(children,bigman)

res = issubclass(children , (man,women,humen,bigman))

print(res)

res = 「feelt」 in children.dict# 10遍

print(res)

單繼承 多繼承 菱形繼承

乙個類繼承另外乙個類,那麼該類就是子類 衍生類 被繼承的這個類叫做父類 基類,超類 繼承 1 單繼承 2 多繼承 python所有的類都預設繼承父類 object 如果子類想呼叫父類私有的,要先在父類裡面定義乙個公有的,然後在公有的裡面先調出私有,最後就可以間接的調出私有,不能在子類中定義公有 cl...

繼承(單繼承 多繼承 菱形繼承 虛繼承)

一 單繼承 單繼承是一種 乙個子類只有乙個直接父類 的繼承關係。二 多繼承 多繼承是一種 乙個子類有兩個或兩個以上直接父類 的繼承關係。三 菱形繼承 菱形繼承由兩個 或以上 單繼承,乙個多繼承構成,結構如下 顯然,上例中assistant類多繼承了student和teacher兩個類,而studen...

c 之各種繼承(單繼承,多繼承,菱形繼承)

在c 語言中。乙個派生類可以從乙個基類派生,也可以從多個基類派生。從乙個基類派生的繼承稱為單繼承,從多個基類派生的繼承稱為多繼承。繼承可以使 得到復用,子類還可以在父類的基礎上新增功能 c 繼承分為公有繼承,私有繼承,保護繼承三類 單繼承的定定義格式 class 派生類名 繼承方式 基類名 多繼承的...