類的屬性耍小聰明啦

class AAA(object):

? ? hobby='play computer'

? ? def __init__(self,name,age,weight):#類的構(gòu)造方法

? ? ? ? self.name=name#參數(shù)代入

? ? ? ? self._age=age#也是參數(shù)代入,不過是半私有化,就是屬性名變了啊

? ? ? ? self.__weight=weight#全私有化?耍小聰明而已啊,改改名字而已

? ? def get_weight(self):#定義第二個(gè)方法

? ? ? ? return self.__weight#用于獲取體重

if __name__=='__main__':

? ? programmer=AAA('Alert',25,80)#實(shí)例化類,形成對(duì)象。

? ? print (dir(programmer))#對(duì)象所有的繼承的類的所有屬性和方法

? ? print(programmer.name)

? ? print(programmer._age)

? ? print(programmer._AAA__weight)

? ? print(programmer.__dict__)

? ? print(programmer.get_weight())

? ? print(programmer._AAA__weight)#這個(gè)地方是對(duì)象的某一個(gè)內(nèi)置的方法。

-----------------------------------------------------------------------------------------

C:\Users\sunqicheng\PycharmProjects\object\venv\Scripts\python.exe C:/Users/sunqicheng/PycharmProjects/object/Programmer.py

['_AAA__weight', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_age', 'get_weight', 'hobby', 'name']

Alert

25

80

{'name': 'Alert', '_age': 25, '_AAA__weight': 80}

80

80

Process finished with exit code 0

--------------------------------------------------

就是構(gòu)造方法的私有屬性,一種呢,就是self._age=age這種實(shí)例化對(duì)象之后可以直接調(diào)用.x._age()

另外一種就是全私有化self.__weight=weight

這種要x._AAA__weight()這樣來方法,一定程度上保護(hù)了構(gòu)造方法里的屬性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容