1 __dict__

设想这样一个场景。有一个字典,从某个地方获取的,比如http请求发过来的,比如从redis中hgetall出来的。我要根据这个字典来构建一个对象。

比如类

class Person:

def __init__(self,_obj):

self.name = _obj['name']

self.age = _obj['age']

利用__dict__的特性,上面的类可以用如下的代替,代码量大大减少:

class Person:

def __init__(self,_obj):

self.__dict__.update(_obj)

2 vars()

p1 = Person( {"name": "sysnap", "age": 21, "sub": {"1":1, "2":2} } )

那如果通过这个实例把数据转为dict呢,答案就是用vars函数,

xxx = vars( p1 )
print ( xxx )

{'age': 21, 'name': 'sysnap', 'sub': {'1': 1, '2': 2}}

Python __dict__和vars()的更多相关文章

  1. Python globals() locals() vars() 三个内建函数的区别

    首先参考官方文档对这三个函数的介绍: 2. Built-in Functions – Python3.5 1.globals() 返回当前全局符号表, 通常是返回当前模块下的全局符号表, 比如全局内建 ...

  2. Python __dict__属性详解

    本文转载自 https://www.cnblogs.com/alvin2010/p/9102344.html 感谢 //偏执 大佬 我们都知道Python一切皆对象,那么Python究竟是怎么管理对象 ...

  3. python __dict__ 跟 dir()的区别

    __dict__:要是对象的话返回的是一个对象自身的实例属性.不包括类的属性:要是类的__dict__则不包括父类的属性,只包含自身类属性[方法.类变量],不包括实例属性.正是这样.每个实例的实例属性 ...

  4. python __dict__

    dict 以key-value 的形式存储着本对类/模块的: 模块的__dict__ 属性: 存储了模块的 name (这个也是模块的一个单独的键,即:在Bx.py 中引入Ax.py 那么,在Bx中, ...

  5. Python dir和vars的区别

    dir()和vars()的区别就是 dir()只打印属性(属性,属性......) 而vars()则打印属性与属性的值(属性:属性值......) ex. >> a='aaaaaaaaaa ...

  6. python内置函数之vars()

    vars([object]) 返回__dict__属性的值.当不传入参数时,和locals()等效.当函数接收一个参数时,参数可以是模块.类.类实例,或者定义了__dict__属性的对象. >& ...

  7. python 中dir()和__dict__的区别

    Python __dict__与dir() 出处(http://blog.csdn.net/lis_12/article/details/53521554). Python下一切皆对象,每个对象都有多 ...

  8. Python之路第三天,基础(3)-set,函数,内置函数,文件,三元运算,lambda

    set集合 集合是一个无序的,不重复的元素集合. 集合的创建: name_set = {'tom','jerry','alex','rose'} 或 name_set = set(['tom','je ...

  9. python字符串内置函数

    1.字符串 定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,‘’或“”或‘’‘ ’‘’中间包含的内容称之为字符串特性:1.只能存放一个值2.不可变3.按照从左到右的顺序定义字符集合,下标 ...

随机推荐

  1. 清空windows系统网络配置

    清空windows系统网络配置 来源  https://www.cnblogs.com/lemon-rain/p/9569990.html 具体描述:qq,微信可用网,但其他不能用. 一.win+r ...

  2. 通过数组的某一个属性值进行排序(如id)

    let arr = [ {id: 1, name: 'aaa'}, {id: 4, name: 'ddd'}, {id: 2, name: 'bbb'}, {id: 3, name: 'ccc'} ] ...

  3. flex 布局方式

    开始啦 1. flex-direction 有关主轴的对齐方式 column 自上到下 row 自左到右 -->默认值 row-reverse 自右到左 column-reverse 自下到上 ...

  4. zookeeper:1

    分布式环境的特点 分布性:多台机器位置不同,但是相互协同做某一件事情. 并发性:程序运行过程中,并发性操作是很长见的.比如:同一个分布式系统中的多个节点,同时访问一个共享资源.(数据库,分布式存储) ...

  5. c# 类成员的可访问性

  6. 异常-Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 596. Encountered: <EOF> after :

    1 详细异常 Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at ...

  7. Ubuntu系统---系统驱动丢失、Kernel内核卸载、禁止更新

    Ubuntu系统---系统驱动丢失.Kernel内核卸载.禁止更新 一早开机发现,ubuntu字体异常,字体很大,直接反应是驱动坏了.一查,确实丢失英伟达驱动,为什么呢?莫名的消失.想知道:1.英伟达 ...

  8. Pycharm----显示tab制表符

    设置前: 设置后: 操作方法:

  9. VS 运行库MT、MD的区别

    https://www.jianshu.com/p/f43afc1d5946 VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT).多线程调试(/MTd).多线程 ...

  10. JAVA实现WEBSERVICE 上传下载

    因公司新项目决定使用webservice与其它项目做交互,于是开始了webservice之旅.    初入webservice的时候第一个接触的工具叫axis2,网上有着大量的简单案例.功能很强大,代 ...