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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。