* 禁白嫖 *python ----私有屬性 *** 刪除屬性

禁白嫖的含義就是

?尊重我的勞動(dòng)成果? 點(diǎn)贊 打賞 轉(zhuǎn)發(fā) 謝謝您各位捧場


'''

更好的保護(hù)對象屬性安全就是不可隨意更改

所以添加了私有類 添加可調(diào)用的方法 供調(diào)用

對自己獨(dú)有的屬性進(jìn)行修改必須進(jìn)行調(diào)用獨(dú)特的方法

在屬性名之前添加兩個(gè)下劃線則表示私有化了不會(huì)進(jìn)行隨意更改

方法名之前添加兩個(gè)下劃線也表示是 私有方法

'''

class Person:

??? def __init__(self,gender):

??????? self.__gender=gender


? ? def setGender(self,newGender):

??????? if self.__gender=='male':

??????????? self.__gender=newGender

? ? ? ? else:

??????????? print('他的性別不是male')


??? def getGender(self):

??????? return self.__gender


p=Person('male')

print(p.getGender())

p.setGender('female')

print(p.getGender())

p.setGender('no female or male')

print(p.getGender())

控制臺(tái)輸出結(jié)果

male

female

他的性別不是male

female

#私有屬性 private私有屬性 / public共有屬性

# python中定義私有屬性用__name? 添加可以調(diào)用的方法進(jìn)行調(diào)用

class People:

???? def __init__(self,name):

??????? self.__name=name


? ? def getName(self):

??????? return self.__name


??? def setName(self,newName):

??????? if len(self.__name) >=5:

??????????? self.__name=newName

? ? ? ? ? ?? return self.getName()

?????? else:

??????????????? print('error:名字長度必須大于5')


xm=People('huahua')

xm.setName('lisi')

print(xm.getName())

xm.setName('huangyongxin')

print(xm.getName())

控制臺(tái)輸出結(jié)果

lisi

error:名字長度必須大于5

lisi


#創(chuàng)建對象的時(shí)候 默認(rèn)調(diào)用 init方法 創(chuàng)建類屬性

#刪除對象的時(shí)候會(huì)自動(dòng)調(diào)用del方法? 刪除類屬性

class Animal:

??? def __init__(self,name):

??????? print('*****__init__方法會(huì)被進(jìn)行調(diào)用*****')

??????? self.__name=name


? ? def __del__(self):

??????? print('****調(diào)用了__del__方法 刪除類對象*****')

??????? print('%s 會(huì)被__del__干掉'%self.__name)


dog=Animal('haba')

dog.__del__()

del dog


cat=Animal('bosi')

cat2=cat

cat3=Animal('heiwei')

cat4=cat3

cat5=cat

print('cat 正在被干掉 或者刪除菜單 ')

del cat

print('cat3正在被干掉 或者刪除菜單')

del cat3


控制臺(tái)輸出:

*****__init__方法會(huì)被進(jìn)行調(diào)用*****

****調(diào)用了__del__方法 刪除類對象*****

haba 會(huì)被__del__干掉

****調(diào)用了__del__方法 刪除類對象*****

haba 會(huì)被__del__干掉

*****__init__方法會(huì)被進(jìn)行調(diào)用*****

*****__init__方法會(huì)被進(jìn)行調(diào)用*****

cat 正在被干掉 或者刪除菜單

cat3正在被干掉 或者刪除菜單

****調(diào)用了__del__方法 刪除類對象*****

bosi 會(huì)被__del__干掉

****調(diào)用了__del__方法 刪除類對象*****

heiwei 會(huì)被__del__干掉

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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