华南俳烁实业有限公司

python

當(dāng)前位置:中華考試網(wǎng) >> python >> python編程基礎(chǔ) >> 文章內(nèi)容

Python類屬性和實(shí)例屬性是什么?

來源:中華考試網(wǎng)  [2020年10月18日]  【

  Python類屬性和實(shí)例屬性是什么

  類屬性、實(shí)例屬性

  了解類基本的東西之后,下面看一下python中這幾個(gè)概念的區(qū)別:

  在前面的例子中我們接觸到的就是實(shí)例屬性(對(duì)象屬性),類屬性就是類對(duì)象所擁有的屬性,它被所有類對(duì)象的實(shí)例對(duì)象所共有,在內(nèi)存中只存在一個(gè)副本,這個(gè)和C++中類的靜態(tài)成員變量有點(diǎn)類似。對(duì)于公有的類屬性,在類外可以通過類對(duì)象和實(shí)例對(duì)象訪問。

  1、類屬性

  class Person(object):

  name = "Tom" #公有的類屬性

  __age = 12 #私有的類屬性

  p = Person()

  print(p.name) #正確

  print(Person.name) #正確

  #print(p.__age) #錯(cuò)誤,不能再類外通過實(shí)例變量訪問類的私有屬性

  #print(Person.__age) #錯(cuò)誤,不能再類外通過類對(duì)象訪問類的私有屬性

  運(yùn)行結(jié)果為:

  Tom

  Tom

  相關(guān)推薦:《Python視頻教程》

  2、實(shí)例屬性(對(duì)象屬性)

  class Person(object):

  address = "廣州"

  def __init__(self):

  self.name = "Se7eN_HOU"

  self.age = 29

  p = Person()

  p.age = 18 #實(shí)例屬性

  print(p.name) #正確

  print(p.address) #正確。實(shí)例對(duì)象可以訪問類屬性

  print(p.age) #正確

  print(Person.address) #正確

  #print(Person.name) #錯(cuò)誤,類不能訪問實(shí)例屬性

  #print(Person.age) #錯(cuò)誤,類不能訪問實(shí)例屬性

  運(yùn)行結(jié)果為:

  Se7eN_HOU

  廣州

  18

  廣州

python課程免費(fèi)試聽預(yù)約

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  3、通過實(shí)例去修改類屬性

  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)

  運(yùn)行結(jié)果為:

  廣州

  廣州

  -------分界線--------

  北京

  廣州

  -------分界線--------

  北京

  上海

  說明:

  如果需要在類外修改類屬性,必須通過類對(duì)象去引用然后進(jìn)行修改。

  如果通過實(shí)例對(duì)象去引用,會(huì)產(chǎn)生一個(gè)同名的實(shí)例屬性,這種方式修改的是實(shí)例屬性,不會(huì)影響到類屬性。

  如果通過實(shí)例對(duì)象去引用該類的類的屬性,實(shí)例屬性其實(shí)會(huì)重新創(chuàng)建一個(gè)新的屬性。

責(zé)編:hym
  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學(xué)歷考試
凤台县| 玉山县| 师宗县| 聊城市| 阿克陶县| 葫芦岛市| 青铜峡市| 营口市| 宁河县| 台湾省| 神木县| 湘潭县| 阜新| 宁德市| 申扎县| 朔州市| 屏南县| 会同县| 芦山县| 昌宁县| 红河县| 广西| 林西县| 英超| 南京市| 保康县| 太康县| 尤溪县| 武陟县| 郁南县| 东源县| 昌黎县| 云梦县| 平潭县| 阳原县| 酒泉市| 新营市| 安阳县| 莫力| 清河县| 咸丰县|