日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

淺談python 中類屬性共享的問(wèn)題

系統(tǒng) 1781 0

感覺(jué)這種理解有問(wèn)題,舉個(gè)例子來(lái)說(shuō)。

            
class Dog(object): 
 
  name = 'dog' 
 
  def init(self): 
 
    self.age = 18
 
d1 = Dog()
 
d2 = Dog()
          

這里有兩個(gè)實(shí)例 d1,d2 吧。

            
d1.name # 輸出 dogd2.name # 輸出 dogd1.name = 'abc'
d1.name # 輸出 abcd2.name # 輸出 dogDog.name # 輸出 dog
          

原因是 d1.name 輸出 dog 不是因?yàn)檫@個(gè)實(shí)例共享了類屬性,而是因?yàn)檫@個(gè)實(shí)例沒(méi)有 dog 屬性,所以 python 查找了類屬性。但是一旦你修改了 d1.name 相當(dāng)于給 d1 實(shí)例綁定了 name 屬性之后,d1.name 就與類屬性無(wú)關(guān)了。既然這樣就談不上實(shí)例之間共享類屬性了,因?yàn)橹灰毁x值,就相當(dāng)于綁定了屬性,則上述 d1.name 的含義和 d2.name 的含義就不同了,它們的值也不同,很明顯它們的數(shù)據(jù)沒(méi)有共享。

但是要修改類屬性,應(yīng)該用

            
Dog.name = 'new name'
          

而不應(yīng)該是

            
dog1.name = 'new name'
          

因?yàn)閷?shí)例屬性同名而覆蓋類屬性,的確是一個(gè)很容易忽視、出錯(cuò)的地方。

            
>>> 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 "
            
              ", line 1, in 
              
                
NameError: name 'd' is not defined
>>> d1.name
'a'
>>> d2.name
'a'
>>> 

              
            
          

以上這篇淺談python 中類屬性共享的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 涞源县| 油尖旺区| 慈利县| 潜江市| 万荣县| 津南区| 南丹县| 科技| 屯门区| 梅州市| 威海市| 凌源市| 南阳市| 门头沟区| 长垣县| 同德县| 汝州市| 阿图什市| 平塘县| 肥东县| 民丰县| 固镇县| 安吉县| 盐边县| 郓城县| 睢宁县| 灵台县| 临颍县| 津市市| 长岛县| 进贤县| 秦安县| 麻栗坡县| 西昌市| 宁乡县| 郁南县| 扎鲁特旗| 化隆| 金溪县| 靖宇县| 屏东市|