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