類和對象2

一.類方法和靜態(tài)方法

類中方法:對象方法、類方法和靜態(tài)反對方

1.對象方法:

a.直接聲明在類中
b.自帶參數(shù)self
c.通過對象來調(diào)用


image.png

2.類方法:

a.聲明在@classmethod后面的函數(shù)就是類方法
b.自帶參數(shù)cls(在函數(shù)調(diào)用的時候不用傳參,系統(tǒng)會自動將調(diào)用這個方法的類賦給它)
c.通過類來調(diào)用


image.png

3.靜態(tài)方法:

a.聲明在@staticmethod后面的函數(shù)就是靜態(tài)方法
b.沒有自帶的參數(shù)
c.通過類來調(diào)用


image.png

4.怎么選擇使用哪個方法:(重點!)

a.對象方法:如果實現(xiàn)函數(shù)的功能需要用到對象的屬性,那么就把這個函數(shù)聲明成對象方法
b.靜態(tài)方法和類方法:實現(xiàn)函數(shù)的功能不需要用到對象的屬性,就可以選擇用靜態(tài)方法或者類方法
類方法:在不使用對象屬相的前提,需要使用類
靜態(tài)方法:既不需要對象的屬性也不需要類

二.私有化

類中的內(nèi)容默認都是公開的(在類外面可以使用)

1.私有化--->將類的內(nèi)容在類的外面隱藏

在類中方法名或者屬性名前加兩個下劃線(不能以兩個下劃線結束)
私有的方法和屬性只能在類的內(nèi)部使用,不能再類的外部使用

2.python中沒有真正的私有化(沒有從訪問權限上去限制內(nèi)容的訪問)

私有的原理就是在私有的屬性名和方法名前綴加‘_類名’來阻止外部直接通過下劃線的名字去使用屬性和方法


image.png

三.getter和setter

1.什么時候需要添加getter和setter

如果希望在通過對象,屬性獲取性的值之前,再干點兒別的事情,就可以給這個屬性添加getter
如果希望在通過對象,屬性給屬性賦值之前,再干點兒別的事情,就可以給這個屬性添加setter

2.怎么添加getter和setter

getter:
a.在屬性名前加_
b.添加屬性對應的getter
@property
def 屬性名去掉_(self):
函數(shù)體 --->會對屬性值進行處理后,返回值的結果(必須要有返回值)

c.使用屬性的值的時候,不通過帶下劃線的屬性去使用,而是通過沒有下劃線的屬性去使用

注意:對象.不帶下劃線的屬性 --->調(diào)用getter對應的函數(shù)

setter:
如果想要添加setter必須先添加getter
a.添加setter
@getter.setter
def 屬性名去掉?(self,參數(shù))
做別的事情
self.屬性名 = 處理后的值

isinstance(值,類) --->判斷指定的值是否值指定類型(返回值是bool)


image.png

image.png

image.png
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容