From: http://m.survivalescaperooms.com/pengsixiong/p/4823473.html
屬性分為實(shí)例屬性與類屬性
方法分為普通方法,類方法,靜態(tài)方法
一:屬性:
盡量把需要用戶傳入的屬性作為實(shí)例屬性,而把同類都一樣的屬性作為類屬性。實(shí)例屬性在每創(chuàng)造一個(gè)類是都會(huì)初始化一遍,不同的實(shí)例的實(shí)例屬性可能不同,不同實(shí)例的類屬性都相同。從而減少內(nèi)存。
1:實(shí)例屬性:
最好在__init__(self,...)中初始化
內(nèi)部調(diào)用時(shí)都需要加上self.
外部調(diào)用時(shí)用instancename.PRopertyname
2:類屬性:
在__init__()外初始化
在內(nèi)部用classname.類屬性名調(diào)用
外部既可以用classname.類屬性名又可以用instancename.類屬性名來(lái)調(diào)用
3:私有屬性:
1):?jiǎn)蜗聞澗€_開(kāi)頭:只是告訴別人這是私有屬性,外部依然可以訪問(wèn)更改
2):雙下劃線__開(kāi)頭:外部不可通過(guò)instancename.propertyname來(lái)訪問(wèn)或者更改
實(shí)際將其轉(zhuǎn)化為了_classname__propertyname
二:方法
1:普通類方法:
def fun_name(self,...):
pass
外部用實(shí)例調(diào)用
2:靜態(tài)方法:@staticmethod
不能訪問(wèn)實(shí)例屬性!!! 參數(shù)不能傳入self!!!
與類相關(guān)但是不依賴類與實(shí)例的方法!!
3:類方法:@classmethod
不能訪問(wèn)實(shí)例屬性!!! 參數(shù)必須傳入cls!!!
必須傳入cls參數(shù)(即代表了此類對(duì)象-----區(qū)別------self代表實(shí)例對(duì)象),并且用此來(lái)電泳類屬性:cls.類屬性名
*靜態(tài)方法與類方法都可以通過(guò)類或者實(shí)例來(lái)調(diào)用。其兩個(gè)的特點(diǎn)都是不能夠調(diào)用實(shí)例屬性
e.g1:
總結(jié):類屬性與類方法是類固有的方法與屬性,不會(huì)因?yàn)閷?shí)例不同而改變,寫他們的目的是減少多實(shí)例時(shí)所創(chuàng)造出來(lái)的內(nèi)存空間,加快運(yùn)行速度。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注