1.類的私有化
1.私有化 - 讓屬性和方法只能在類的內(nèi)部使用胃榕,不能再類的外部使用
1)語法:
聲明屬性或者方法的時候桅狠,在屬性名或者方法名前面加'__'
- python私有化的原理
python 沒有真的私有屬性和方法
只是在名字前面加前綴,'_類名'蠕啄,導(dǎo)致不能直接通過原名訪問
2.對象屬性的保護: 不要直接訪問或者修改對象屬性的值人弓,而是通過屬性訪問器(getter)和修改器(setter)去操作對象屬性
需要添加getter或者setter的對象屬性癞季,屬性命名的時候需要在最前面加''。
(添加''的目的是為了告訴使用者阁吝,這個屬性我給它添加了getter或者setter)
1)getter - 獲取屬性的值(間接)
a.語法:
@property
def 函數(shù)名(self):
其他語句
return 屬性值
2)setter - 給屬性賦值(間接)
想要添加setter必須先添加getter
a.語法:
@getter名.setter
def 函數(shù)名(self, 參數(shù)):
其他語句
self.屬性 = 值
3.類中的方法: 對象方法砚婆、類方法、靜態(tài)方法
1)對象方法
a.怎么聲明: 直接聲明在類中
b.特點: 有默認(rèn)參數(shù)self突勇;調(diào)用的時候不用傳參装盯,指向當(dāng)前對象
c.怎么調(diào)用: 通過對象來調(diào)用(對象.對象方法())
d.什么時候使用: 如果實現(xiàn)函數(shù)的功能,需要使用對象屬性甲馋,就用對象方法
2)類方法
a.怎么聲明: 聲明函數(shù)前添加@classmethod裝飾器
b.特點: 有默認(rèn)參數(shù)cls; 調(diào)用的時候不用傳參, 系統(tǒng)將調(diào)用這個方法的類傳給它埂奈,指向當(dāng)前類
c.怎么調(diào)用: 通過類來調(diào)用
d.什么時候使用: 在不需要對象屬性的前提下,需要類的字段定躏,就使用類方法
3)靜態(tài)方法
a.怎么聲明:聲明前添加@staticmethod裝飾器
b.特點: 沒有默認(rèn)參數(shù)
c.怎么調(diào)用: 通過類來調(diào)用
d.什么時候使用: 既不需要對象屬性也不需要類的字段账磺,就使用靜態(tài)方法
4.繼承
繼承 - 讓子類直接擁有父類的屬性和方法
1)語法:
class 類名(父類):
類的內(nèi)容
5.在子類中添加內(nèi)容
1)在子類中添加字段和方法
直接在子類中聲明新的字段和方法
2)添加對象屬性
在子類中實現(xiàn)init方法,并且添加新屬性痊远。同時需要通過super().init()去調(diào)用父類的init方法
6.重寫
在子類中重新實現(xiàn)父類的函數(shù); 可以通過super()去調(diào)用父類中的方法垮抗。
注意: super()不能在靜態(tài)方法中使用,只能在對象方法和類方法中用