python __dict__用法,python中的dict函数什么意思

  python __dict__用法,python中的dict函数什么意思

  本文主要介绍python中__dict__属性的引入。第一,通过将词典转换为对象的技巧,扩展了标题介绍,具有一定的参考价值。以下具体相关介绍,朋友们可以参考一下。

  将字典转换成对象的小技巧:

  bokeyuan={b: 1,

  o: 2,

  k: 3,

  e: 4,

  y: 5,

  u: 6,

  a: 7,

  n: 8,

  }

  Dict2Obj:类

  # def __init__(self,bokeyuan):

  # self.b=bokeyuan[b]

  # self.o=bokeyuan[o]

  # self.k=bokeyuan[k]

  # self.e=bokeyuan[e]

  # self.y=bokeyuan[y]

  # self.u=bokeyuan[u]

  # self.a=bokeyuan[a]

  # self.n=bokeyuan[n]

  def __init__(self,bokeyuan):

  打印(修改前的3360 ,self。_ _字典_ _)

  自我。__词典_ _。更新(博客源)

  打印(修改:,自身。__字典_ _)

  d=Dict2Obj(博客源)

  打印(d)

  d : MC venv Scripts python . exe d :/MC/test 03 . py

  修改第一个: {}

  修改后:{b : 1, o : 2, k 3360 3, e 3360 4, y 3360 5, u 3360 6, a 3360 7, n 3360 8}

  __main__.Dict2Obj对象位于0x0000019722B78400

  进程结束,退出代码为0

  Python的实例有自己的__dict__属性,对应的类也有自己的__dict__(但有些特殊对象没有__dict__属性,这里就不讨论了)。__dict__是一个字典,键作为属性名,值作为属性值。

  上面的self实例对象的属性一开始是{},更新为{b : 1, o 3360 2, k 3360 3, e 3360 4, y 3360 5, u 3360 6, a 3360 7,

  #首先创建一个类cls,其中包含一个值为1的类变量clsvar和一个值为2的实例变量insvar,

  cls:类

  clsvar=1

  def __init__(self):

  self.insvar=2

  #创建ins1和ins2ins1=cls()类的实例

  ins2=cls()

  print的__dict__属性(cls。__dict__) # class

  打印(ins1。__dict__)# in S1实例对象的_ _ dict _ _属性

  ins1.clsvar=20

  打印(cls.clsvar)

  打印(ins1.clsvar)

  Print(ins2.clsvar) # ins1实例改变类变量不会影响ins2实例

  print的__dict__属性(cls。__dict__) # class

  打印(ins1。__dict__)# in S1实例对象的_ _ dict _ _属性

  d : MC venv Scripts python . exe d :/MC/test 03 . py

  {__module__: __main__ , clsvar: 1, __init__:函数cls。__init__ at0x00000156AEC75040, __dict__:属性 __dict__ of cls 对象,__weakref__:属性 __weakref__ of cls 对象,__doc__: None}

  { insvar : 2 }

  1201

  {__module__: __main__ , clsvar: 1, __init__:函数cls。__init__ at0x00000156AEC75040, __dict__:属性 __dict__ of cls 对象,__weakref__:属性 __weakref__ of cls 对象,__doc__: None}

  { insvar : 2, clsvar: 20}

  进程结束,退出代码为0

  打印类的__dict__属性时,列出了类cls中包含的属性,包括一些类内置属性、类变量clsvar和构造方法__init__

  实例变量包含在实例对象ins1的__dict__属性中。对象属性的搜索顺序如下:首先搜索实例对象本身,然后是类,最后是类的父类。当ins1在自己的__dict__中找到clsvar时,就不会再查找了。

  Ins1.clsvar=20这句话只是将键值对 clsvar: 20添加到实例Ins1的__dict__属性中,但是类中clsvar的值并没有改变。重要的事情说三遍:对象属性的搜索顺序遵循先搜索实例对象本身,再搜索类,再搜索类的父类。当ins1在自己的__dict__中找到clsvar时,不会再查找,所以输出值20。然而,此时cls类中clsvar的值仍然是1。

  关于python中__dict__属性介绍的这篇文章到此为止。关于pythondict属性的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: