創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
什么是Python類屬性和實例屬性?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
類屬性、實例屬性
了解類基本的東西之后,下面看一下python中這幾個概念的區(qū)別:
在前面的例子中我們接觸到的就是實例屬性(對象屬性),類屬性就是類對象所擁有的屬性,它被所有類對象的實例對象所共有,在內(nèi)存中只存在一個副本,這個和C++中類的靜態(tài)成員變量有點類似。對于公有的類屬性,在類外可以通過類對象和實例對象訪問。
1、類屬性
class Person(object): name = "Tom" #公有的類屬性 __age = 12 #私有的類屬性 p = Person() print(p.name) #正確 print(Person.name) #正確 #print(p.__age) #錯誤,不能再類外通過實例變量訪問類的私有屬性 #print(Person.__age) #錯誤,不能再類外通過類對象訪問類的私有屬性
運行結(jié)果為:
Tom Tom
2、實例屬性(對象屬性)
class Person(object): address = "廣州" def __init__(self): self.name = "Se7eN_HOU" self.age = 29 p = Person() p.age = 18 #實例屬性 print(p.name) #正確 print(p.address) #正確。實例對象可以訪問類屬性 print(p.age) #正確 print(Person.address) #正確 #print(Person.name) #錯誤,類不能訪問實例屬性 #print(Person.age) #錯誤,類不能訪問實例屬性
運行結(jié)果為:
Se7eN_HOU 廣州 18 廣州
3、通過實例去修改類屬性
class Person(object): address = "廣州" #類屬性 p = Person() print(p.address) #正確 print(Person.address) #正確 print("-------分界線--------") p.address = "北京" print(p.address) print(Person.address) print("-------分界線--------") Person.address = "上海" print(p.address) print(Person.address)
運行結(jié)果為:
廣州 廣州 -------分界線-------- 北京 廣州 -------分界線-------- 北京 上海
說明:
如果需要在類外修改類屬性,必須通過類對象去引用然后進行修改。 如果通過實例對象去引用,會產(chǎn)生一個同名的實例屬性,這種方式修改的是實例屬性,不會影響到類屬性。 如果通過實例對象去引用該類的類的屬性,實例屬性其實會重新創(chuàng)建一個新的屬性。
看完上述內(nèi)容,你們掌握什么是Python類屬性和實例屬性的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!
名稱欄目:什么是Python類屬性和實例屬性-創(chuàng)新互聯(lián)
URL地址:http://www.chinadenli.net/article34/dsgjpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、Google、網(wǎng)站策劃、網(wǎng)站收錄、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)