一,類
1.什么是類,什么是對象
類就是擁有相同屬性,相同功能的對象的集合(抽象的)
對象就是類的實(shí)例(具體的)
2.類的聲明 - 確定這個類的共同的屬性和功能是什么
1)語法:
class 類名:
類的說明文檔
類的內(nèi)容
2)class - 關(guān)鍵字
類名 - 要求:標(biāo)識符;不能是關(guān)鍵字
規(guī)范:a.首字母大寫,采用駝峰式命名規(guī)范,b.見名知義,c.不能使用系統(tǒng)提供的函數(shù)名或者類名
類的說明文檔 - 和函數(shù)說明文檔一樣
類的內(nèi)容 - 主要包含屬性和方法(方法就是聲明在類中函數(shù))
3.聲明對象
1)語法:
對象 = 類()
同一個類可以創(chuàng)建多個對象
二,對象方法和構(gòu)造方法
1.對象方法
1)對象方法
a.怎么聲明:直接聲明(聲明前不需要加裝飾器)在類中的函數(shù)就是對象方法
b.特點(diǎn):自帶self參數(shù);用對象調(diào)用對象方法的時候self不用傳參,系統(tǒng)會自動將當(dāng)前對象傳給self
self可以做到誰調(diào)用就指向誰
c.怎么調(diào)用:以'對象.對象方法()'的形式來調(diào)用 - 通過對象來調(diào)用對象方法
2.構(gòu)造方法
1).構(gòu)造函數(shù) - 函數(shù)名和類名一樣,用來創(chuàng)建類的對象的函數(shù)
python中聲明類的時候,系統(tǒng)會自動為這個類創(chuàng)建一個構(gòu)造函數(shù),函數(shù)的作用是創(chuàng)建對象
構(gòu)造方法的執(zhí)行過程:
a.在內(nèi)存中開辟空間創(chuàng)建對象
b.用創(chuàng)建好的對象去調(diào)用init方法
c.返回對象的地址
2).init方法
聲明在類中用來對對象進(jìn)行初始化的方法;(當(dāng)對象一創(chuàng)建出來,這個方法就會被自動調(diào)用)
注意:創(chuàng)建對象的時候構(gòu)造方法需不需要傳參,需要傳幾個參數(shù),看這個類的init方法
三,屬性
1.類中的屬性
屬性就是聲明在類中的變量
類中的屬性分為:字段,對象屬性
1)字段
a.怎么聲明:聲明在類的里面函數(shù)的外面的變量就是字段
b.怎么使用:通過類去使用(以'類.字段'的形式使用)
c.什么時候用:屬性的值不會因?yàn)閷ο蟛煌煌?,這樣的屬性就聲明成類的字段
2)對象屬性(重要)
a.怎么聲明:以'self.屬性名=值'的形式聲明在init方法中
b.怎么使用:通過對象去使用
c.什么時候用:屬性的值可能會因?yàn)閷ο蟛煌灰粯?,這樣的屬性就聲明成對象屬性
練習(xí):
1)聲明一個dog類。擁有名字:名字,年齡,性別和類型
要求創(chuàng)建對象的時候名字必須賦值,品種必須賦值,年齡和性別可以賦值也可以不賦值
2)擁有兩個對象方法,一個用來打印狗的信息(顯示信息的方法)和一個叫喚的方法:以"以xx:旺旺旺旺"的格式打??;
class Dog:
def __init__(self,name,types,age=0,gender='公'):
self.name=name
self.age=age
self.gender=gender
self.types=types
def get_message(self):
print("名字:{0},年齡:{1},性別:{2},品種:{3}".format(self.name,self.age,self.gender,self.types))
def call_out(self):
print('{}:汪汪汪汪'.format(self.name))
dog1=Dog('jj','土狗')
dog1.get_message()
dog1.call_out()
四,屬性的增刪改查
1.查(獲取屬性的值)
方法一:對象.屬性
方法二:getattr(對象,屬性名:str)/getattr(對象,屬性名:str,默認(rèn)值)
方法三:對象.getattribute(屬性名)
2.增/改
屬性存在是修改
屬性不存在就添加
方法一:對象.屬性 = 值
方法二:setattr(對象,屬性名,值)
3.刪
方法一:del 對象.屬性
方法二:delattr(對象,屬性名)
4.slots魔法
通過給slots字段賦值來約束當(dāng)前類的對象有哪些對象屬性
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。