本篇文章給大家分享的是有關如何在python 中實現(xiàn)類屬性共享,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
公司專注于為企業(yè)提供成都做網(wǎng)站、網(wǎng)站制作、微信公眾號開發(fā)、商城網(wǎng)站定制開發(fā),成都小程序開發(fā),軟件按需開發(fā)網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務。憑借多年豐富的經(jīng)驗,我們會仔細了解各客戶的需求而做出多方面的分析、設計、整合,為客戶設計出具風格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務。class Dog(object): name = 'dog' def init(self): self.age = 18 d1 = Dog() d2 = Dog()
這里有兩個實例 d1,d2 吧。
d1.name # 輸出 dogd2.name # 輸出 dogd1.name = 'abc' d1.name # 輸出 abcd2.name # 輸出 dogDog.name # 輸出 dog
原因是 d1.name 輸出 dog 不是因為這個實例共享了類屬性,而是因為這個實例沒有 dog 屬性,所以 python 查找了類屬性。但是一旦你修改了 d1.name 相當于給 d1 實例綁定了 name 屬性之后,d1.name 就與類屬性無關了。既然這樣就談不上實例之間共享類屬性了,因為只要一賦值,就相當于綁定了屬性,則上述 d1.name 的含義和 d2.name 的含義就不同了,它們的值也不同,很明顯它們的數(shù)據(jù)沒有共享。
但是要修改類屬性,應該用
Dog.name = 'new name'
而不應該是
dog1.name = 'new name'
因為實例屬性同名而覆蓋類屬性,的確是一個很容易忽視、出錯的地方。
>>> class Dog(): ... name = "dog" ... >>> d1 = Dog() >>> d1.name 'dog' >>> d2 = Dog() >>> d2.name 'dog' >>> Dog.name 'dog' >>> Dog.name = "a" >>> d.name Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'd' is not defined >>> d1.name 'a' >>> d2.name 'a' >>>Python主要用來做什么
Python主要應用于:1、Web開發(fā);2、數(shù)據(jù)科學研究;3、網(wǎng)絡爬蟲;4、嵌入式應用開發(fā);5、游戲開發(fā);6、桌面應用開發(fā)。
以上就是如何在python 中實現(xiàn)類屬性共享,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁題目:如何在python中實現(xiàn)類屬性共享-創(chuàng)新互聯(lián)
本文URL:http://www.rwnh.cn/article18/ijpgp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、網(wǎng)站維護、網(wǎng)站改版、企業(yè)網(wǎng)站制作、域名注冊、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)