摘要:上一篇文章裝飾器真正入門的鑒定標(biāo)準(zhǔn)下一篇文章垃圾回收詳解私有化變量定義規(guī)則變量形式解讀公有變量單前置下劃線,私有化屬性或方法,禁止導(dǎo)入,類對(duì)象和子類進(jìn)可以訪問。雙前置下劃線,避免與子類中的屬性命名沖突,無法再在外部直接訪問。
上一篇文章:Python裝飾器:python真正入門的鑒定標(biāo)準(zhǔn)1、私有化
下一篇文章:Python垃圾回收詳解
變量定義規(guī)則
變量形式 | 解讀 |
---|---|
xx | 公有變量xx |
_xx | 單前置下劃線,私有化屬性或方法,from somemodule import *禁止導(dǎo)入,類對(duì)象和子類進(jìn)可以訪問。 |
__xx | 雙前置下劃線,避免與子類中的屬性命名沖突,無法再在外部直接訪問。 |
__xx__ | 雙前后下劃線,python自定義使用的的屬性或者方法名稱,例如__init__,不要自定義這種名稱的變量 |
x_ | 單后置下劃線,避免與Python關(guān)鍵詞沖突 |
實(shí)例:
class Man(): def __init__(self): self.__age=18 def getAge(self): return self.__age def setAge(self,value): #isinstance用來判斷一個(gè)對(duì)象是不是指定類型 #下面語(yǔ)句就是用來判斷value是不是int類型 if isinstance(value,int): self.__age=value else: print("輸入的年齡不是整數(shù)") if __name__=="__main__": mark=Man() mark.setAge("xxx") print(mark.getAge()) mark.setAge(20) print(mark.getAge()) #下面一句會(huì)報(bào)錯(cuò) #print(mark.age)
結(jié)果:
輸入的年齡不是整數(shù) 18 20
實(shí)例:
class Man(): def __init__(self): self.__age = 18 def getAge(self): return self.__age def setAge(self, value): # isinstance用來判斷一個(gè)對(duì)象是不是指定類型 # 下面語(yǔ)句就是用來判斷value是不是int類型 if isinstance(value, int): self.__age = value else: print("輸入的年齡不是整數(shù)") age=property(getAge,setAge) if __name__ == "__main__": mark = Man() mark.age="xxx" print(mark.age) mark.age=20 print(mark.age)
結(jié)果:
輸入的年齡不是整數(shù) 18 20
實(shí)例:
class Man(): def __init__(self): self.__age = 18 @property def age(self): return self.__age @age.setter def age(self,value): # isinstance用來判斷一個(gè)對(duì)象是不是指定類型 # 下面語(yǔ)句就是用來判斷value是不是int類型 if isinstance(value, int): self.__age = value else: print("輸入的年齡不是整數(shù)") if __name__ == "__main__": mark = Man() mark.age="xxx" print(mark.age) mark.age=20 print(mark.age)
結(jié)果:
輸入的年齡不是整數(shù) 18 20
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/42260.html
摘要:一利用動(dòng)態(tài)屬性處理數(shù)據(jù)源屬性在中,數(shù)據(jù)的屬性和處理數(shù)據(jù)的方法統(tǒng)稱屬性。處理無效屬性名在中,由于關(guān)鍵字被保留,名稱為關(guān)鍵字的屬性是無效的。內(nèi)置函數(shù)列出對(duì)象的大多數(shù)屬性。點(diǎn)號(hào)和內(nèi)置函數(shù)會(huì)觸發(fā)這個(gè)方法。 導(dǎo)語(yǔ):本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之元編程篇的重點(diǎn)知識(shí)及個(gè)人心得,打算入門Python的朋友們可以來一起學(xué)習(xí)并交流。 本文重點(diǎn): 1、了解如何利用動(dòng)態(tài)屬性處理數(shù)據(jù);2、掌握Pyth...
摘要:在項(xiàng)目中,為滿足以上要求,我們將大量的參數(shù)配置在或文件中,通過注解,我們可以方便的獲取這些參數(shù)值使用配置模塊假設(shè)我們正在搭建一個(gè)發(fā)送郵件的模塊。這使得在不影響其他模塊的情況下重構(gòu)一個(gè)模塊中的屬性變得容易。 在編寫項(xiàng)目代碼時(shí),我們要求更靈活的配置,更好的模塊化整合。在 Spring Boot 項(xiàng)目中,為滿足以上要求,我們將大量的參數(shù)配置在 application.properties 或...
摘要:在項(xiàng)目中,為滿足以上要求,我們將大量的參數(shù)配置在或文件中,通過注解,我們可以方便的獲取這些參數(shù)值使用配置模塊假設(shè)我們正在搭建一個(gè)發(fā)送郵件的模塊。這使得在不影響其他模塊的情況下重構(gòu)一個(gè)模塊中的屬性變得容易。 在編寫項(xiàng)目代碼時(shí),我們要求更靈活的配置,更好的模塊化整合。在 Spring Boot 項(xiàng)目中,為滿足以上要求,我們將大量的參數(shù)配置在 application.properties 或...
摘要:此時(shí),鏈家起到的作用就是代理的作用。驗(yàn)證代理構(gòu)造函數(shù)第二個(gè)參數(shù)中的方法,可以很方便的驗(yàn)證向一個(gè)對(duì)象的傳值。 1 什么是代理模式 showImg(https://segmentfault.com/img/remote/1460000015800706?w=1262&h=464); 為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問。在某些情況下,一個(gè)對(duì)象不適合或者不能直接引用另一個(gè)對(duì)象,而代理...
摘要:也有類似的概念,它是根據(jù)傳遞的數(shù)據(jù)類型推斷的。這個(gè)特性的名稱被稱為私有字段,雖然這不會(huì)使所有對(duì)象受益,但會(huì)使類實(shí)例的對(duì)象受益。警告中有一個(gè)功能會(huì)破壞代理的隱私。 showImg(https://segmentfault.com/img/bVbpL6y?w=800&h=456); Symbols 是 ES6 引入了一個(gè)新的數(shù)據(jù)類型 ,它為 JS 帶來了一些好處,尤其是對(duì)象屬性時(shí)。 但是,...
閱讀 1829·2021-09-22 15:55
閱讀 3521·2021-09-07 10:26
閱讀 628·2019-08-30 15:54
閱讀 684·2019-08-29 16:34
閱讀 839·2019-08-26 14:04
閱讀 3258·2019-08-26 11:47
閱讀 2134·2019-08-26 11:33
閱讀 2294·2019-08-23 15:17