属性被分为八大类不包括_Python语言---私有属性
屬性分為實例屬性與類屬性
方法分為普通方法,類方法,靜態(tài)方法
一:屬性:
盡量把需要用戶傳入的屬性作為實例屬性,而把同類都一樣的屬性作為類屬性。實例屬性在每創(chuàng)造一個實例時都會初始化一遍,不同的實例的實例屬性可能不同,不同實例的類屬性都相同。從而減少內(nèi)存。
1:實例屬性:
最好在__init__(self,...)中初始化
內(nèi)部調(diào)用時都需要加上self.
外部調(diào)用時用instancename.propertyname
2:類屬性:
在__init__()外初始化
在內(nèi)部用classname.類屬性名調(diào)用
外部既可以用classname.類屬性名又可以用instancename.類屬性名來調(diào)用
3:私有屬性:
1):單下劃線_開頭:只是告訴別人這是私有屬性,外部依然可以訪問更改
2):雙下劃線__開頭:外部不可通過instancename.propertyname來訪問或者更改
實際將其轉(zhuǎn)化為了_classname__propertyname
二:方法
1:普通類方法:
def fun_name(self,...):
pass
外部用實例調(diào)用
2:靜態(tài)方法:@staticmethod
不能訪問實例屬性!!! 參數(shù)不能傳入self!!!
與類相關(guān)但是不依賴類與實例的方法!!
3:類方法:@classmethod
不能訪問實例屬性!!! 參數(shù)必須傳入cls!!!
必須傳入cls參數(shù)(即代表了此類對象-----區(qū)別------self代表實例對象),并且用此來調(diào)用類屬性:cls.類屬性名
*靜態(tài)方法與類方法都可以通過類或者實例來調(diào)用。其兩個的特點都是不能夠調(diào)用實例屬性
class A: member = "this is a test." def __init__(self): pass @classmethod def Print1(cls): print "print 1: ", cls.member def Print2(self): print "print 2: ", self.member @classmethod def Print3(paraTest): print "print 3: ", paraTest.member @staticmethod def print4(): print "hello"總結(jié):類屬性與類方法是類固有的方法與屬性,不會因為實例不同而改變,寫他們的目的是減少多實例時所創(chuàng)造出來的內(nèi)存空間,加快運行速度。
-----尚學堂百戰(zhàn)程序員筆記(18)
總結(jié)
以上是生活随笔為你收集整理的属性被分为八大类不包括_Python语言---私有属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “岩栖咀丹客”上一句是什么
- 下一篇: 华大单片机m4内核的滴答定时器_微处理器