python 类 __dict__ 在赋值时的使用
2017-09-16 21:57
162 查看
举个栗子:
class test1(object): def __init__(self): self.a = 1 self.b = 2
test1 是个简单的类,我们先初始化这个类,然后用一个字典给类的实例赋值,会发现一些有趣的地方
In [12]: x.__dict__ Out[12]: {'a': 1, 'b': 2} In [13]: x.__dict__ = {'a':3, 'c':4} In [14]: x Out[14]: <__main__.test1 at 0xaf29080> In [15]: x.__dict__ Out[15]: {'a': 3, 'c': 4} In [16]: x.c Out[16]: 4 In [17]: x.__dict__ = {'a':3, 'c':4, 'b':5} In [18]: x.__dict__ Out[18]: {'a': 3, 'b': 5, 'c': 4}
从 In[13] 可以发现原来类的属性里面没有定义 self.c , 但是经过赋值,实例 x 就有了 x.c 属性, 但是 x.b 却消失了。从接下来的 [17], [18] 可以看出来 实例的属性会被重新赋值,而且部分属性会被删除,这取决于等号后面的 dict 有哪些 key.
如果我们只是想增添实例的属性,并且改变某些已有的属性,那么可以使用 字典的 update 函数来实现
x.__dict__.update({'a':3, 'c':4})
这样如果实例本身就有 x.a 属性,那么 x.a = 3 x.c = 4
相关文章推荐
- python dict 字典 以及 赋值 引用的一些小实验
- python使用点操作符访问字典(dict)数据
- Python中变量赋值使用、特殊字符和注释等的特点
- [Python-tools]defaultdict的使用场景
- Python中dict使用
- python中将普通对象作为 字典类(dict) 使用
- Python 3 collections.defaultdict() 与 dict的使用和区别
- python 使用 simplejson 将字符串转换成字典dict
- 详解Python中dict与set的使用
- Python标准库defaultdict模块使用示例
- [转载]python中将普通对象作为 字典类(dict) 使用
- Python 1.6 使用dict和set
- Python collections.defaultdict() 与 dict的使用和区别
- Python 字典dict使用介绍
- 在python2.x中使用dict类型解决没有python3.x中的nonlcoal的问题
- 详解Python中dict与set的使用
- python中使用list作为默认参数且调用时不给其赋值的问题
- 在Python中使用dict和set方法的教程
- python 字典dict 的使用
- Python学习9:字典dict的使用