问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

字典对象值列表的返回方法

发布网友 发布时间:2024-08-19 18:40

我来回答

1个回答

热心网友 时间:2024-09-02 09:33

一. 方便但不完美的__dict__
对象转字典用到的方法为__dict__. 比如对象对象a的属性a.name='wk', a.age=18, 那么如果直接将使用a.__dict__获得对应的字典的值为: {name: 'wk', aget:18}, 很方便, 但是也存在一些限制. 其不完美之处在于:
比如:
class A(object):
name = 'wukt'
age = 18
def __init__(self):
self.gender = 'male'
a = A()
print(a.__dict__)
此时的打印结果是:
{gender: 'male'}
但是类变量name和age无法一同转换.
二. 使用dict
使用dict的方式如下, 如果直接使用会报错.
a = A()
dict(a)
使用dict之时, 将自动调用类中的keys方法, keys中定义了字典的键, 调用keys方法后, 程序将依照字典取值的方式尝试获得这些键对应的值.
当使用如字典的取值方式时: 比如a['name'], 将会调用类中的__getitem__方法, __getitem__方法决定了这个值是多少.
因此只需要在一例中添加两个方法就可以使对象可以通过dict转字典:
def keys(self):
return ('name', 'age' )
def __getitem__(self, item):
return getattr(self, item)
通过这种方式, 既可以支持类变量的转换, 又可以自定义需要转换的字段.
完整代码:
class A(object):
name = 'wukt'
age = 18
def __init__(self):
self.gender = 'male'
def keys(self):
'''当对实例化对象使用dict(obj)的时候, 会调用这个方法,这里定义了字典的键, 其对应的值将以obj['name']的形式取,
但是对象是不可以以这种方式取值的, 为了支持这种取值, 可以为类增加一个方法'''
return ('name', 'age', 'gender')
def __getitem__(self, item):
'''内置方法, 当使用obj['name']的形式的时候, 将调用这个方法, 这里返回的结果就是值'''
return getattr(self, item)
a = A()
r = dict(a)
print(r)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
现在办理的优待证以后还可以领钱吗? 读台湾的大学 台湾专科学院排名是什么?致理学院是专科第一吗? 台湾 致理技术学院 致理技术学院详细资料大全 徽信是什么意思? 聚美优品视频是用啥软件做的啊 ? 聚美优品怎么使用 聚美优品使用教程汇总 什么体重秤称比较准 给我一篇什么真让我着迷的作文 (600个字以上) Python字典(dict )的几种遍历方式 python中values()函数的用法 钱局造句用钱局造句 u盾签名失败或未完成怎么办? 电脑打字时为什么总是出小写字母 win10系统自带IE浏览器内置flash不可用,求大神解决~在线等~急_百度知... 手机看flash的网站用什么浏览器好呢? 跟着医圣张仲景学习一下中医养生之道养生:养生先养德。 ...是我不哭不笑不点头也不摇头,假装你的话还不够让我感动,我非有... 我不哭不笑不点头也不摇头,是那首歌的词 ...然后用了几m 花了我50元 想问一下办流量包 可不可以 把钱给我退回... 微信好友验证过期了,怎么办呢? 昨天我在网上办理贷款,合同签了,有交了1980元的保险金,银行有下了放款... 湖北事业单位选拔干部还存在身份吗 自主招生是什么意思 自主招生是指什么意思 什么事自主招生 10kv线路零序电压不能超过多少 平芜的读音平芜的读音是什么 陕西的八大名吃?(陕西著名小吃?) 曲面屏不贴膜会怎么样 微信电脑版图片保存在哪里 电脑版微信图片保存在哪里 就像下雨一样的流,等你说出一千个理由,才知道在你心我到底有多重_百度... 盘子又碎了,你不哭太累了,是什么歌 保定华文玩具制造有限公司怎么样? 英语等级考试可以不用考四级,直接考6、8级吗? 抖音淄博F4是什么梗-淄博F4梗意思及出处分享 抖音评论卧槽无情是什么梗 卧槽无情含义出处 全国英语等级证书考试(简称PETS) cfa考试费用多少 CFA考试什么时候考?考几次? Mac怎么彻底删除Flashplayer插件? 什么叫cfa考试 " Flash版本更新后多了Helper Service,可以删除吗?怎样删除?"_百度知... 猫咪也会孤独吗? ...XX制作 于2014.11”中间的几个汉字用英文怎么写 猫咪孤单的表现 独自在家会无聊吗 猫咪孤单会有什么表现 快手里的抢置顶是什么意思 猫咪孤单的表现