欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年07月02日 09:22:33   作者:Young丶  
今天小編就為大家分享一篇淺談python 中類(lèi)屬性共享的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

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

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

Dog.name = 'new name'

而不應(yīng)該是

dog1.name = 'new name'

因?yàn)閷?shí)例屬性同名而覆蓋類(lèi)屬性,的確是一個(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 "<stdin>", line 1, in <module>
NameError: name 'd' is not defined
>>> d1.name
'a'
>>> d2.name
'a'
>>> 

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

相關(guān)文章

  • Python中的Function定義方法

    Python中的Function定義方法

    Python中,函數(shù)是可被重用的程序段。對(duì)于函數(shù)的定義,可以使用def關(guān)鍵字。
    2009-09-09
  • Python+OpenCV實(shí)現(xiàn)圖像融合的原理及代碼

    Python+OpenCV實(shí)現(xiàn)圖像融合的原理及代碼

    這篇文章主要介紹了Python+OpenCV實(shí)現(xiàn)圖像融合的原理及代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-12-12
  • python用faker庫(kù)批量生成假數(shù)據(jù)

    python用faker庫(kù)批量生成假數(shù)據(jù)

    這篇文章主要介紹了python用faker庫(kù)批量生成假數(shù)據(jù),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • pandas實(shí)現(xiàn)將日期轉(zhuǎn)換成timestamp

    pandas實(shí)現(xiàn)將日期轉(zhuǎn)換成timestamp

    今天小編就為大家分享一篇pandas實(shí)現(xiàn)將日期轉(zhuǎn)換成timestamp,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • 用Python腳本來(lái)刪除指定容量以上的文件的教程

    用Python腳本來(lái)刪除指定容量以上的文件的教程

    這篇文章主要介紹了用Python腳本來(lái)刪除指定容量以上的文件的教程,是Python操作文件的一個(gè)簡(jiǎn)單實(shí)踐,需要的朋友可以參考下
    2015-05-05
  • 基于OpenCV目標(biāo)跟蹤實(shí)現(xiàn)人員計(jì)數(shù)器

    基于OpenCV目標(biāo)跟蹤實(shí)現(xiàn)人員計(jì)數(shù)器

    這篇文章主要介紹了如何利用Python OpenCV這兩者來(lái)創(chuàng)建更準(zhǔn)確的人員計(jì)數(shù)器,文中的示例代碼講解詳細(xì),感興趣的小伙伴快來(lái)跟隨小編學(xué)習(xí)一下吧
    2022-03-03
  • PyCharm 2020 激活到 2100 年的教程

    PyCharm 2020 激活到 2100 年的教程

    這篇文章主要介紹了PyCharm 2020 激活到 2100 年,本文圖文并茂給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 從DataFrame中提取出Series或DataFrame對(duì)象的方法

    從DataFrame中提取出Series或DataFrame對(duì)象的方法

    今天小編就為大家分享一篇從DataFrame中提取出Series或DataFrame對(duì)象的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Python中一些不為人知的基礎(chǔ)技巧總結(jié)

    Python中一些不為人知的基礎(chǔ)技巧總結(jié)

    這篇文章主要給大家總結(jié)介紹了Python中一些不為人知的基礎(chǔ)技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • python write無(wú)法寫(xiě)入文件的解決方法

    python write無(wú)法寫(xiě)入文件的解決方法

    今天小編就為大家分享一篇python write無(wú)法寫(xiě)入文件的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01

最新評(píng)論