類:
為雙橋等地區用戶提供了全套網頁設計制作服務,及雙橋網站建設行業解決方案。主營業務為做網站、成都網站設計、雙橋網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!類是某種類型集合的描述。
我們把擁有相同屬性的事務叫做類,里面封裝了相同的方法。比如人,汽車等。
對象:
對象是由類創建的實例。對象的三個特性:身份,類型,值,在這里不做描述。
類的私有屬性及訪問方式:
外部想要訪問類的私有屬性有兩種方式:
1:類內創建一個函數,來返回私有屬性
2:類特性
對象的私有字段:
創建一個類如下:
class Province: memo = "中國的23個省之一" #是類的字段,是屬于類的,不屬于對象,這個屬于類的靜態字段,屬于類 def __init__(self,name,captial,leader,flag): self.Name=name #通過self創建的字段叫做動態字段,不像靜態字段,動態字段屬于對象 self.Captial=captial self.Leader=leader self.__happy = flag #創建對象的私有字段
XZ=Province("西藏","烏魯木齊","×××",True) #實例化類,就是創建了個對象 print XZ.Captial print XZ.__happy
執行結果如下:
Traceback (most recent call last): File "F:\lvsir\workspace\pystudy-oldboy\oop\privat_filld.py", line 47, in <module> 烏魯木齊 print XZ.__happy AttributeError: Province instance has no attribute '__happy'
此例可見,私有字段是外部不可直接訪問的;外部若想訪問對象的私有字段,可以再在類中創建一個函數,來顯示私有字段,代碼如下:
class Province: ... ... def show(self): #在類中創建一個查看實例私有字段的方法 return self.__happy
XZ=Province("西藏","烏魯木齊","×××",True) print XZ.show() #調用show方法
執行結果如下:
True
還是上面的例子,添加私有方法代碼如下:
class Province: ... ... def __Hello(self): #定義私有方法,直接使用類實例是訪問不到的,在類中可以訪問的到 print "Hello,world" def access_hello(self): #創建一個訪問私有方法的函數 print self.__Hello()
XZ=Province("西藏","烏魯木齊","×××",True) print XZ.__Hello
直接訪問對象的私有方法,執行結果如下:
Traceback (most recent call last): File "F:\lvsir\workspace\pystudy-oldboy\oop\privat_filld.py", line 49, in <module> print XZ.__Hello AttributeError: Province instance has no attribute '__Hello'
使用第一種方法訪問私有方法
print XZ.access_hello() #調用類實例的訪問私有方法的函數
Hello,world
由上可見,類的私有方法對象是不能直接訪問的,也可以通過類內可訪問私有方法的方法間接訪問
使用類特性訪問私有方法:
class Province: ... ... @property #創建類特性,返回私有方法 def Hello(self): return self.__Hello()
XZ=Province("西藏","烏魯木齊","×××",True) print XZ.Hello #直接調用類特性,以字段的方式訪問,不需要帶括號
執行結果如下:
Hello,world
類的私有字段的只讀和只寫
我們創建一個新類,代碼如下:
class Province1: def __init__(self,name,flag): self.name=name self.__Hello = flag @property #只讀的私有字段,是可以訪問的,但是不能修改 def Heloo(self): return self.__Hello
TW = Province1('臺灣',True) print TW.Heloo TW.Heloo=False print TW.Heloo
執行結果如下:
True Traceback (most recent call last): File "F:\lvsir\workspace\pystudy-oldboy\oop\privat_filld.py", line 76, in <module> TW.Heloo=False AttributeError: can't set attribute
是可以讀到私有字段的,但是不能修改
下面添加代碼,是私有字段可以訪問并且可寫,前提是類要繼承object,代碼如下:
class Province1(object): def __init__(self,name,flag): self.name=name self.__Hello = flag @property #只讀的私有字段,是可以訪問的,但是不能修改 def Heloo(self): return self.__Hello @Heloo.setter #可改的私有字段,可以訪問,也可以修改,可以的私有字段的類要繼承object def Heloo(self,value): self.__Hello=value
TW = Province1('臺灣',True) print TW.Heloo TW.Heloo=False print TW.Heloo
執行結果如下:
True False
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
標題名稱:淺談類及對象的字段和方法-創新互聯
文章地址:http://vcdvsql.cn/article32/pjhpc.html
成都網站建設公司_創新互聯,為您提供關鍵詞優化、搜索引擎優化、服務器托管、全網營銷推廣、App設計、網站內鏈
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯