#__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 派生類名 繼承方式 基類名 多繼承的...