Day15_總結(jié)

一,內(nèi)置屬性

什么是內(nèi)置類屬性
聲明類的時候系統(tǒng)自動添加的屬性(可能是字段也可能是對象屬性) 1)name
類的字段秦陋;類名.name - 獲取類的名字(字符串)
2)__doc__
類的字段;類.__doc__ - 獲取類的說明文檔
3)__class__
對象的屬性;對象.__class__ - 獲取對象對應的類 (和type(對象)功能一樣)
4)__dict__
對象屬性结笨;對象.__dict__ - 將對象所有的屬性和對應的值轉(zhuǎn)換成一個字典中的鍵值對(一個對象對應一個字典)
類的字段反惕;類.__dict__ - 將類裝成一個字典尝艘,字典中的元素是類中所有的字段和對應的值
5.__module__
類的字段;類.__module__ - 獲取當前類是在哪個模塊中聲明的(返回的是模塊的名字)
6.bases
類的字段姿染;類.__bases__ - 獲取當前類的父類(返回的是一個元組)

二.私有化

1.訪問權(quán)限:公開背亥,保護,私有
公開 - 公開的屬性和方法在類的內(nèi)部悬赏,外部都能使用狡汉,也能被繼承
保護 - 保護的屬性和方法在類的內(nèi)部能夠使用,外部不能使用闽颇,可以被繼承
私有 - 私有的屬性和方法只能在類的內(nèi)部使用盾戴,外部不能使用,也不能被繼承
2.python中屬性和方法的訪問權(quán)限
python類中所有的屬性和方法本質(zhì)都是公開的兵多;私有化是假私有化尖啡,只是提示程序員這個屬性或者方法在外部不能使用,也不要去繼承
怎么私有化:在私有化的屬性名或者方法名前加'__'(注意:不能以'__'結(jié)尾)

三.屬性的getter和setter

1.什么是getter和setter
當我們需要在獲取屬性值之前做點別的事情就需要給這個屬性添加getter剩膘;
當需要給屬性賦值之前做別的事情衅斩,就需要給這個屬性添加setter
2.給屬性添加getter
1)屬性命名的時候前面加'_'
2)在裝飾器@property的后面聲明一個對象方法
a.將屬性名去掉下劃線作為方法名
b.方法除了self以外不需要其他參數(shù)
c.函數(shù)的返回值就是獲取這個屬性的時候得到的值
3)在外部使用屬性的時候,通過'對象.不帶下劃線的屬性'去使用
注意:獲取屬性值的時候怠褐,就會自動調(diào)用getter對應的函數(shù)
3.給屬性添加setter
屬性添加setter之前必須先添加getter
1)保證屬性名前有'_'
2)在@getter名.setter后面聲明對象方法
a.將屬性去掉下劃線作為方法名
b.需要一個self以外的慘呼
c.不需要返回值
3)在外部使用屬性的時候畏梆,通過'對象.不帶下劃線的屬性'去使用
注意:當給屬性賦值的時候,實質(zhì)是調(diào)用setter對應的方法
練習:寫一個矩形類
1)有屬性:長奈懒,寬具温,面積,周長
2)要求從生活的角度看這個矩形
class Rectangle:
    def __init__(self,long, wide,area=None,perimeter=None):
        self._long=long
        self._wide=wide
        self._area=area
        self._perimeter=perimeter
    @property
    def long(self):
        return self._long
    @long.setter
    def long(self,value):
        if not (isinstance(value,int) or isinstance(value,float)):
            raise ValueError
        if value <= 0:
            raise ValueError
        self._long=value
    @property
    def wide(self):
        return self._long
    @wide.setter
    def wide(self, value):
        if not (isinstance(value, int) or isinstance(value ,float)):
            raise ValueError
        if value <= 0:
            raise ValueError
        self._wide=value
    @property
    def area(self):
        return self._long*self._wide
    @area.setter
    def area(self,value):
        raise ValueError
    @property
    def perimeter(self):
        return 2*(self._long+self._wide)
    @perimeter.setter
    def perimeter(self,value):
        raise ValueError

四筐赔,類方法和靜態(tài)方法

類中的函數(shù)
類中的方法分為:對象方法铣猩,類方法和靜態(tài)方法
1)對象方法
a.怎么聲明:直接聲明
b.怎么調(diào)用:用對象來調(diào)用
c.特點:有指向當前對象的self
d.什么時候用:如果實現(xiàn)函數(shù)的功能需要用到對象屬性,就使用對象方法
2)類方法
a.怎么聲明:聲明在@classmethod后面
b.怎么調(diào)用:用類來調(diào)用茴丰,'類.類方法'
c.特點:有自帶的參數(shù)cls达皿,表示當前類;這個參數(shù)在調(diào)用的時候不用傳參贿肩,系統(tǒng)會自動將當前類傳給它峦椰;
cls:誰調(diào)用就指向誰(如果是對象指向的是對象對應的類)
d.什么時候用:如果實現(xiàn)函數(shù)的功能不需要對象屬性,但是需要類的字段汰规,就使用類方法
3)靜態(tài)方法
a.怎么聲明:聲明在@staticmethod后面
b.怎么調(diào)用:通過類來調(diào)用汤功,'類.方法名'的形式
c.特點:沒有默認參數(shù)
d.什么時候用:實現(xiàn)函數(shù)的功能既不需要類也不需要對象,就使用靜態(tài)方法

五溜哮,繼承

1.什么是繼承
繼承就是讓字類直接擁有符類的屬性和方法
字類 - 繼承者
符類/超類 - 被繼承者
2.怎么繼承
1)語法
class 類名(父類1滔金,父類2色解,...)
說明文檔
類的內(nèi)容
2)說明:
() - 固定寫法,如果省略相當于(object)
聲明類的時候如果沒有寫父類餐茵,默認繼承object(object又叫基類)
父類 - 一個類的父類可以有多個科阎,但是一般清空下只有一個(支持多繼承)
在字類中可以通過super()可以調(diào)用父類的方法
注意:super()只能在對象方法和類方法中使用
在字類中添加對象屬性,需要先通過super()去調(diào)用父類的_init_來繼承父類的對象屬性
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末忿族,一起剝皮案震驚了整個濱河市锣笨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌道批,老刑警劉巖错英,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異隆豹,居然都是意外死亡走趋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門噪伊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來簿煌,“玉大人,你說我怎么就攤上這事鉴吹∫涛埃” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵豆励,是天一觀的道長夺荒。 經(jīng)常有香客問我,道長良蒸,這世上最難降的妖魔是什么技扼? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮嫩痰,結(jié)果婚禮上剿吻,老公的妹妹穿的比我還像新娘。我一直安慰自己串纺,他們只是感情好丽旅,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著纺棺,像睡著了一般榄笙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祷蝌,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天茅撞,我揣著相機與錄音,去河邊找鬼。 笑死米丘,一個胖子當著我的面吹牛剑令,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蠕蚜,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼尚洽,長吁一口氣:“原來是場噩夢啊……” “哼悔橄!你這毒婦竟也來了靶累?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤癣疟,失蹤者是張志新(化名)和其女友劉穎挣柬,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睛挚,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡邪蛔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了扎狱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侧到。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖淤击,靈堂內(nèi)的尸體忽然破棺而出匠抗,到底是詐尸還是另有隱情,我是刑警寧澤污抬,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布汞贸,位于F島的核電站,受9級特大地震影響印机,放射性物質(zhì)發(fā)生泄漏矢腻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一射赛、第九天 我趴在偏房一處隱蔽的房頂上張望多柑。 院中可真熱鬧,春花似錦楣责、人聲如沸顷蟆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帐偎。三九已至,卻和暖如春蛔屹,著一層夾襖步出監(jiān)牢的瞬間削樊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留漫贞,地道東北人甸箱。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像迅脐,于是被迫代替她去往敵國和親芍殖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一谴蔑,內(nèi)置屬性 1.什么是內(nèi)置類屬性 聲明類的時候系統(tǒng)自動添加的屬性(可能是字段也可能是對象屬性) 1)name類的...
    oct___d38e9閱讀 161評論 0 0
  • 一豌骏、內(nèi)置類屬性 聲明類的時候系統(tǒng)自動添加的屬性:字段、對象屬性隐锭。 __dict__ -將對象轉(zhuǎn)換成字典 對象屬性...
    浩子_唯一號閱讀 222評論 0 1
  • 面向?qū)ο?一窃躲、內(nèi)置內(nèi)屬性 1.什么是內(nèi)置內(nèi)屬性聲明類的時候系統(tǒng)自動添加的屬性(可能是字段也可能是字段屬性) 二、私...
    ______n___閱讀 194評論 0 0
  • 內(nèi)置函數(shù)屬性 1.聲明是內(nèi)置類屬性 聲明類的時候系統(tǒng)自動添加的屬性(可能是字段也可能是對象屬性) 定制當前類的對象...
    舉顆鳳梨閱讀 261評論 0 4
  • 內(nèi)置類屬性 1.什么是內(nèi)置類屬性 聲明類的時候系統(tǒng)自動添加的屬性(可能是字段钦睡,也可能是對象屬性) 1)name 類...
    茅人閱讀 167評論 0 0