1.基础实现

 class TestDict:
name = "wyb"
age = "" def __init__(self):
self.gender = 'male' def keys(self): # 获取字典的键
s = ('name', 'age', 'gender')
return s def __getitem__(self, item): # 获取键对应的值
return getattr(self, item) # getattr获取对象下某个属性的值 o = TestDict()
print(dict(o)) # 创建字典 -> 先调用对象下的keys方法再用o["xxx"]获取值([]本质上是调用对象下的__getitem__方法)

2.进阶实现

 class Base(object):
def __init__(self):
self.fields = [] def __getitem__(self, item):
return getattr(self, item) def keys(self):
return self.fields def hide(self, *keys): # 隐藏域
for key in keys:
self.fields.remove(key)
return self def append(self, *keys): # 添加域
for key in keys:
self.fields.append(key)
return self class Sx(Base):
name = "wyb"
age = 21 def __init__(self):
super(Base, self).__init__()
self.gender = 'male'
# self.fields定义默认输出字段
self.fields = ["name", "age"] o1 = Sx()
print(dict(o1))
o2 = Sx()
print(dict(o2.hide("age")))
o3 = Sx()
print(dict(o3.append("gender"))) # 输出结果:
# {'name': 'wyb', 'age': 21}
# {'name': 'wyb'}
# {'name': 'wyb', 'age': 21, 'gender': 'male'}

python对象转字典的更多相关文章

  1. python 对象转字典

    从数据库中取出的数数据是 对象类型的,不能直接展示出来,需要转成字典类型,然后转成json 字符串,传给前端: data = {} data.update(obj.__dict__) print(da ...

  2. Python数据类型(字典和集合)

    1.5 Dictionary(字典) 在Python中,字典用放在花括号{}中一系列键-值对表示.键和值之间用冒号分隔,键-值对之间用逗号分隔. 在字典中,你想存储多少个键-值对都可以.每个键都与一个 ...

  3. python 将一个JSON 字典转换为一个Python 对象

    将一个JSON 字典转换为一个Python 对象例子 >>> s='{"name":"apple","shares":50 ...

  4. [转载]python中将普通对象作为 字典类(dict) 使用

    目前我知道的有两种方法: 1 定义的类继承dict类 例如 class A(dict): pass a = A() a['name'] = 12 2 给自定义的类添加 __setitem__() __ ...

  5. python征程3.0(python对象)

    1.python使用对象模型来存储数据.构造任何类型的值都是一个对象.”尽管python被当成一种面向对象的脚本的编程语言“,但你完全能够写出不使用任何类和实例的脚本. python对象都拥有三个特性 ...

  6. Python 对象的引用计数和拷贝

    Python 对象的引用计数和拷贝 Python是一种面向对象的语言,包括变量.函数.类.模块等等一切皆对象. 在python中,每个对象有以下三个属性: 1.id,每个对象都有一个唯一的身份标识自己 ...

  7. 13.python中的字典

    字典其实和之前的元祖和列表功能相似,都是用来储存一系列对象的.也就是一种可变容器,或者是我所比喻的革新派的菜单. 但也不是完全相同,我在之前曾经将字典称为特殊的'序列',是字典拥有序列的部分特性,但是 ...

  8. Python对象(译)

    这是一篇我翻译的文章,确实觉得原文写的非常好,简洁清晰 原文链接:http://effbot.org/zone/python-objects.htm ------------------------- ...

  9. 《Python核心编程》 第四章 Python对象- 课后习题

    练习 4-1. Python对象.与所有Python对象有关的三个属性是什么?请简单的描述一下. 答:身份.类型和值: 身份:每一个对象都有一个唯一的身份标识自己,可以用id()得到.  类型:对象的 ...

随机推荐

  1. 【c++基础】判断是否到文件末尾-eof函数

    前言 读取文件内容时,需要判断是否到文件末尾,此时用到eof函数. 函数定义 Check whether eofbit is set Returns true if theeofbiterror st ...

  2. JS经典面试题

    自己总结了一些JS面试题 希望能够帮助正在找工作的程序猿(●´∀`●) 1.js 实现一个函数对javascript中json 对象进行克隆 var oldObject ="sdf" ...

  3. MQ的不足

    调用方实时依赖执行结果的业务场景,请使用调用,而不是MQ.MQ是互联网分层架构中的解耦利器,那所有通讯都使用MQ岂不是很好?这是一个严重的误区,调用与被调用的关系,是无法被MQ取代的.比如用户登录场景 ...

  4. python类的继承的两种方式

    class Animal(object): """docstring for Animal""" def __init__(self, na ...

  5. centos6安装GitLab全程详解和常见问题解决

    GitLab,是一个使用 Ruby on Rails 开发的开源应用程序,与Github类似,能够浏览源代码,管理缺陷和注释,非常适合在团队内部使用. 官方只提供了Debian/Ubuntu系统下的安 ...

  6. 关于hadoop集群管理系统搭建的规划说明

    Hadoop集群管理系统搭建是每个入门级新手都非常头疼的事情,因为你可能花费了很久的时间在搭建运行环境,最终却不知道什么原因无法创建成功.但对新手来说,运行环境搭建不成功的概率还蛮高的. 在之前的分享 ...

  7. PHP 小技巧之如何避免参数多次传递?

    开发中经常遇到函数参数传递的问题:比如 A调用B,B调用C,C调用D, A->B->C->D 而D方法可能需要一个参数,这个参数只能在A中获取(比如A是控制器方法),这个参数这样一级 ...

  8. 基于Hadoop开发网络云盘系统架构设计方案第一稿

    引言 云计算技术的发展,各种网络云盘技术如雨后春笋,层出不穷,百度.新浪.网易都推出了自己的云盘系统,本文基于开源框架Hadoop设计实现了一套自己的网络云盘系统,方案为初步设计方案,不断完善中. 一 ...

  9. 【JSP中引入文件】JSP中获取根路径+引用js文件

    在jsp界面中经常需要引入js.css等文件,通常都需要先获取项目根路径,然后再引入文件. 例如: 项目路径如下,需要在index.jsp中引入FusionCharts相关的js.css等: inde ...

  10. 4.前端注册表单验证 && 表单回填

    表单验证 前端表单验证就是在 jsp 页面中添加验证逻辑,使得注册表单在传入后台之前先进行一次表单验证 在jsp文件里的 head 块里面添加 jQuery 代码 <script type=&q ...