面向对象基本知识
面向?qū)ο?br />類(lèi)是對(duì)一群具有相同特征或者行為的事務(wù)的一個(gè)統(tǒng)稱(chēng),不能直接使用的
特征被稱(chēng)為屬性
行為被稱(chēng)為方法
類(lèi)就相當(dāng)于制造飛機(jī)的圖紙,是一個(gè)模板,是負(fù)責(zé)創(chuàng)建對(duì)象的
對(duì)象就是由類(lèi)創(chuàng)建出來(lái)的一個(gè)具體存在,可以直接使用
用哪一個(gè)類(lèi)創(chuàng)建出來(lái)的對(duì)象,就擁有在哪一個(gè)類(lèi)中定義的方法
在程序中,應(yīng)該先有類(lèi),再有對(duì)象
類(lèi)只有一個(gè),而對(duì)象有多個(gè)
類(lèi)
類(lèi)名
屬性
方法
變量,數(shù)據(jù),函數(shù)都是對(duì)象
定義類(lèi)
class 類(lèi)名:
?? ?def 方法1(self,參數(shù)列表):
?? ??? ?-pass
?? ?def 方法2(self,參數(shù)列表):
?? ??? ?-pass
創(chuàng)建對(duì)象
對(duì)象變量=類(lèi)名()
類(lèi)的外部給對(duì)象增加屬性
1.可以使用 .屬性名 利用賦值語(yǔ)句就可以了(但不推薦使用)
哪一個(gè)對(duì)象調(diào)用的方法,self就是哪一個(gè)對(duì)象的引用
初始化對(duì)象
當(dāng)使用類(lèi)名創(chuàng)建對(duì)象時(shí),會(huì)自動(dòng)執(zhí)行以下操作:
1.為對(duì)象在內(nèi)存中分配空間? --創(chuàng)建對(duì)象
2.為對(duì)象的屬性設(shè)置初始值? --初始化方法(init)
class Cat:
?? ?def __init__(self):
tom=cat()
使用類(lèi)名()創(chuàng)建對(duì)象的時(shí)候,會(huì)自動(dòng)調(diào)用初始化方法__init__
初始化方法中定義屬性 __init__
當(dāng)一個(gè)對(duì)象被從內(nèi)存中銷(xiāo)毀前,會(huì)自動(dòng)調(diào)用__del__方法
del關(guān)鍵字可以刪除一個(gè)對(duì)象
__str__:如果在開(kāi)發(fā)中,希望使用print輸出對(duì)象變量時(shí),能夠打印自定義的內(nèi)容,就可以使用__str__這個(gè)內(nèi)置方法了
__str__方法必須返回一個(gè)字符串
class Cat:
?? ?def __init__(self,new_name):
?? ??? ?self.name=new_name
?? ??? ?print("%s來(lái)了" %self.name)
?? ?def __del__(self):
?? ??? ?print("%s 我去了" %self.name)
?? ?def __str__(self):
?? ??? ?return "我是小貓[%s]" % self.name
tom=Cat("Tom")
print(tom)
?? ??? ?
?? ??? ?
?? ??? ?
轉(zhuǎn)載于:https://www.cnblogs.com/duanzexun/p/10997827.html
總結(jié)
- 上一篇: C语言输出格式
- 下一篇: leetcode32 Longest V