2017.11.14類屬性、實(shí)例屬性

1、文字描述 類屬性、實(shí)例屬性的區(qū)別。

類也是一種對(duì)象.

實(shí)例屬性只屬于當(dāng)前這一個(gè)實(shí)例對(duì)象的.self訪問(wèn)的都是實(shí)例屬性.

類是一種描述,類屬性是屬于每一個(gè)實(shí)例對(duì)象的,每一個(gè)對(duì)象都有類屬性.而且都是一樣的,只有一份.類屬性所有的實(shí)例方法都共享.如果對(duì)象也有同名的實(shí)例屬性,對(duì)象訪問(wèn)的時(shí)候,優(yōu)先使用實(shí)例屬性.其次才是類屬性.實(shí)例屬性會(huì)屏蔽掉同名的類屬性.

2、寫代碼創(chuàng)建類屬性和實(shí)例屬性并注釋指明是類屬性還是實(shí)例屬性

實(shí)例屬性:

class Person:

sun = 1

p1=Person()

p2=Person()

#獲取類屬性,每一個(gè)對(duì)象都有類屬性

print(p1.sun)

print(p2.sun)

print(Person.sun)

print('****************************************************************')

Person.sun=0

print(p1.sun)

print(p2.sun)

print(Person.sun)

類屬性:

class Person:

sun = 1

p1=Person()

p2=Person()

#獲取類屬性,每一個(gè)對(duì)象都有類屬性

print(p1.sun)

print(p2.sun)

print(Person.sun)

print('****************************************************************')

Person.sun=0

print(p1.sun)

print(p2.sun)

print(Person.sun)

print('****************************************************************')

#這里的sun是一個(gè)p1的實(shí)例屬性

p1.sun=1111

print(p1.sun)

#p2是類屬性

print(p2.sun)

print(Person.sun)

3、文字描述 類方法、實(shí)例方法、靜態(tài)方法的區(qū)別。

答:

類方法是類對(duì)象所擁有的方法,需要用修飾器@classmethod(注解、元數(shù)據(jù))來(lái)標(biāo)識(shí)其為類方法,對(duì)于類方法,第一個(gè)參數(shù)必須是類對(duì)象,一般以cls作為第一個(gè)參數(shù),能夠通過(guò)實(shí)例對(duì)象和類對(duì)象去訪問(wèn)。類方法還有一個(gè)用途就是可以對(duì)類屬性進(jìn)行修改.

用實(shí)例屬性調(diào)出來(lái)的方法就是實(shí)例方法.實(shí)例方法的第一個(gè)參數(shù)是實(shí)例對(duì)象self.

靜態(tài)方法? 需要通過(guò)修飾器@staticmethod來(lái)進(jìn)行修飾,靜態(tài)方法不需要多定義參數(shù).

總結(jié):

從類方法和實(shí)例方法以及靜態(tài)方法的定義形式就可以看出來(lái),類方法的第一個(gè)參數(shù)是類對(duì)象cls,那么通過(guò)cls引用的必定是類對(duì)象的屬性和方法;而實(shí)例方法的第一個(gè)參數(shù)是實(shí)例對(duì)象self,那么通過(guò)self引用的可能是類屬性、也有可能是實(shí)例屬性(這個(gè)需要具體分析),不過(guò)在存在相同名稱的類屬性和實(shí)例屬性的情況下,實(shí)例屬性優(yōu)先級(jí)更高。靜態(tài)方法中不需要額外定義參數(shù),因此在靜態(tài)方法中引用類屬性的話,必須通過(guò)類對(duì)象來(lái)引用.

4、寫代碼創(chuàng)建類方法、實(shí)例方法、靜態(tài)方法并注釋指明是類方法、實(shí)例方法、靜態(tài)方法

class Person:

def f1(self):

print('f1...self=%s,id(self)=%s'%(self,id(self)))

self.num=120? #實(shí)例方法

@classmethod

def f2(cls):? ? ? #類方法

print('f2...cls=%s,id(cls)=%s'%(cls,id(cls)))

cls.num=110? #類屬性

p1=Person()

p1.f1()

print(id(p1))

# Person.f1(p1)

print('****************************')

p1.f2()

print(id(Person))

Person.f2()

print(Person.num)

print('****************************')

print(p1.num)

print('****************************')

print('****************************')

p2 = Person()

print(p2.num)

print('****************************')

class Person:

@staticmethod? #靜態(tài)的

def f1():? ? #靜態(tài)方法

print('我是靜態(tài)的,不強(qiáng)制傳參')

p1 = Person()

p1.f1()

Person.f1()

print('****************************')

5、文字說(shuō)明,你對(duì)面向?qū)ο蟮睦斫狻?/p>

將數(shù)據(jù)與函數(shù)綁定到一起,進(jìn)行封裝,這樣能夠更快速的開發(fā)程序,減少了重復(fù)代碼的重寫過(guò)程.

按人們認(rèn)識(shí)客觀世界的系統(tǒng)思維方式,采用基于對(duì)象(實(shí)體) 的概念建立模型,模擬客觀世界分析、設(shè) 計(jì)、實(shí)現(xiàn)軟件的辦法。

面向?qū)ο笫且环N設(shè)計(jì)思想

1 符合人們的思考習(xí)慣

2 把執(zhí)行者變成指揮者

3 簡(jiǎn)化功能,把復(fù)雜的事情簡(jiǎn)單化

想完成一個(gè)事,找具有這樣功能的對(duì)象,如果能找到,調(diào)用這個(gè)對(duì)象的功能,完成這個(gè)事

如果找不到,創(chuàng)建具有這樣功能的對(duì)象,再調(diào)用完成這個(gè)事.

6、文字說(shuō)明面向?qū)ο蟮娜筇卣魇鞘裁??怎么理解?/p>

封裝? 繼承? ? 多態(tài)

封裝:類是一種封裝,將屬性和方法封裝。

函數(shù)也是一種封裝,將具有一定共的邏輯代碼封裝到一個(gè)函數(shù)中,使用的時(shí)候調(diào)用即可

提高代碼的擴(kuò)展性。

繼承:將共性的屬性和方法放在父類中,子類只需要關(guān)注自己特有的屬性和方法.提高代碼的擴(kuò)展性.

python中所有的內(nèi)容都是對(duì)象,所有的對(duì)象都直接或間接繼承了.雖然子類沒(méi)有定義__init__方法,但是父類有,所以在子類繼承父類的時(shí)候這個(gè)方法就被繼承了,所以只要?jiǎng)?chuàng)建Bosi的對(duì)象,就默認(rèn)執(zhí)行了那個(gè)繼承過(guò)來(lái)的__init__方法.子類在繼承的時(shí)候,在定義類時(shí),小括號(hào)()中為父類的名字父類的屬性、方法,會(huì)被繼承給子類.

多態(tài):

一個(gè)對(duì)象在不同的情況下,具有不同的形態(tài),用于強(qiáng)類型語(yǔ)言。是使用在繼承和接口中實(shí)現(xiàn)。

Python中有兩種說(shuō)法:

1、python支持多態(tài),python是一個(gè)弱類型,本身一個(gè)變量名,可以存儲(chǔ)任何類型的值,可以理解為多種形態(tài)

2、python不支持多態(tài),多態(tài)本身是用于強(qiáng)類型語(yǔ)言的,python是一個(gè)弱類型,所以不支持多態(tài)

Python不支持多態(tài),也不用支持多態(tài),python是一種多態(tài)語(yǔ)言,崇尚鴨子類型。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,001評(píng)論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,786評(píng)論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,986評(píng)論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,204評(píng)論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,964評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,354評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,410評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,554評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,106評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,918評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,093評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,648評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,342評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,755評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,009評(píng)論 1 289
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,839評(píng)論 3 395
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,107評(píng)論 2 375

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

  • 一、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,848評(píng)論 2 16
  • 包(lib)、模塊(module) 在Python中,存在包和模塊兩個(gè)常見概念。 模塊:編寫Python代碼的py...
    清清子衿木子水心閱讀 3,825評(píng)論 0 27
  • 要點(diǎn): 函數(shù)式編程:注意不是“函數(shù)編程”,多了一個(gè)“式” 模塊:如何使用模塊 面向?qū)ο缶幊蹋好嫦驅(qū)ο蟮母拍睢傩浴?..
    victorsungo閱讀 1,548評(píng)論 0 6
  • 一、多態(tài) 1.概念 一種事物的多種體現(xiàn)形式,函數(shù)的重寫其實(shí)就是多態(tài)的一種體現(xiàn)在Python中,多態(tài)指的是父類的引用...
    hollow_02f9閱讀 6,033評(píng)論 0 1
  • 一 周五是hanna幼兒園萬(wàn)圣節(jié)活動(dòng),班里老師邀請(qǐng)家長(zhǎng)和孩子們一起表演親子節(jié)目。 因?yàn)榻o她準(zhǔn)備了白雪公主的服裝,我...
    竹筠益閱讀 1,002評(píng)論 0 0