91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

      手機站
      千鋒教育

      千鋒學習站 | 隨時隨地免費學

      千鋒教育

      掃一掃進入千鋒手機站

      領取全套視頻
      千鋒教育

      關注千鋒學習站小程序
      隨時隨地免費學習課程

      當前位置:首頁  >  技術干貨  > Python __dict__屬性詳解

      Python __dict__屬性詳解

      來源:千鋒教育
      發(fā)布人:xqq
      時間: 2023-11-07 08:49:33 1699318173

      我們都知道Python一切皆對象,那么Python究竟是怎么管理對象的呢?

      1、無處不在的__dict__

      首先看一下類的__dict__屬性和類對象的__dict__屬性

      #-*-coding:utf-8-*-

      classA(object):

      """

      ClassA.

      """

      a=0

      b=1

      def__init__(self):

      self.a=2

      self.b=3

      deftest(self):

      print'anormalfunc.'

      @staticmethod

      defstatic_test(self):

      print'astaticfunc.'

      @classmethod

      defclass_test(self):

      print'acalssfunc.'

      obj=A()

      printA.__dict__

      printobj.__dict__

      運行結果如下:

      {'a':0,'__module__':'__main__','b':1,'class_test':,'__dict__':,'__init__':,'test':,'__weakref__':,'__doc__':'\nClassA.\n','static_test':}

      {'a':2,'b':3}

      由此可見,類的靜態(tài)函數(shù)、類函數(shù)、普通函數(shù)、全局變量以及一些內置的屬性都是放在類__dict__里的

      對象的__dict__中存儲了一些self.xxx的一些東西

      2、Python里什么沒有__dict__屬性

      雖然說一切皆對象,但對象也有不同,就好比不是每個人的女朋友都是一個人一樣,一些內置的數(shù)據(jù)類型是沒有__dict__屬性的,如下:

      num=3

      ll=[]

      dd={}

      printnum.__dict__

      printll.__dict__

      printdd.__dict__

      當我們運行這樣的代碼時,解釋器就會告訴我們

      Traceback(mostrecentcalllast):

      File"f:\python\test.py",line54,in

      printnum.__dict__

      AttributeError:'int'objecthasnoattribute'__dict__'

      Traceback(mostrecentcalllast):

      File"f:\python\test.py",line55,in

      printll.__dict__

      AttributeError:'list'objecthasnoattribute'__dict__'

      Traceback(mostrecentcalllast):

      File"f:\python\test.py",line56,in

      printdd.__dict__

      AttributeError:'dict'objecthasnoattribute'__dict__'

      int,list,dict等這些常用的數(shù)據(jù)類型是沒有__dict__屬性的,其實這是可預料的,就算給了它們dict屬性也沒啥用,畢竟它們只是用來做數(shù)據(jù)容器的。

      3、發(fā)生繼承時候的__dict__屬性

      子類有自己的__dict__,父類也有自己的__dict__,子類的全局變量和函數(shù)放在子類的dict中,父類的放在父類dict中。

      #-*-coding:utf-8-*-

      classParent(object):

      a=0

      b=1

      def__init__(self):

      self.a=2

      self.b=3

      defp_test(self):

      pass

      classChild(Parent):

      a=4

      b=5

      def__init__(self):

      super(Child,self).__init__()

      #self.a=6

      #self.b=7

      defc_test(self):

      pass

      defp_test(self):

      pass

      p=Parent()

      c=Child()

      printParent.__dict__

      printChild.__dict__

      printp.__dict__

      printc.__dict__

      運行上面的代碼,結果入下:

      {'a':0,'__module__':'__main__','b':1,'__dict__':,'p_test':,'__weakref__':,'__doc__':None,'__init__':}

      {'a':4,'c_test':,'__module__':'__main__','b':5,'p_test':,'__doc__':None,'__init__':}

      {'a':2,'b':3}

      {'a':2,'b':3}

      1)上段輸出結果中,用紅色字體標出的是類變量和函數(shù),由結果可知,每個類的類變量、函數(shù)名都放在自己的__dict__中

      2)再來看一下實力變量的__dict__中,由藍色字體標識,父類和子類對象的__dict__是公用的

      總結:

      1)內置的數(shù)據(jù)類型沒有__dict__屬性

      2)每個類有自己的__dict__屬性,就算存著繼承關系,父類的__dict__并不會影響子類的__dict__

      3)對象也有自己的__dict__屬性,存儲self.xxx信息,父子類對象公用__dict__

      以上內容為大家介紹了Python__dict__屬性詳解,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.jsszjs.cn/

      tags: python培訓
      聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
      10年以上業(yè)內強師集結,手把手帶你蛻變精英
      請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
      免費領取
      今日已有369人領取成功
      劉同學 138****2860 剛剛成功領取
      王同學 131****2015 剛剛成功領取
      張同學 133****4652 剛剛成功領取
      李同學 135****8607 剛剛成功領取
      楊同學 132****5667 剛剛成功領取
      岳同學 134****6652 剛剛成功領取
      梁同學 157****2950 剛剛成功領取
      劉同學 189****1015 剛剛成功領取
      張同學 155****4678 剛剛成功領取
      鄒同學 139****2907 剛剛成功領取
      董同學 138****2867 剛剛成功領取
      周同學 136****3602 剛剛成功領取
      相關推薦HOT