专栏首页中科院渣渣博肆僧一枚Python把类当做字典来访问

Python把类当做字典来访问

定义一个类将它实例化,我们可以通过obj.属性来访问类的属性,如果想获取类的所有实例变量,我们可以使用obj.__dict__来访问,如下:

class A:
    def __init__(self):
        self.a = 1
        self.b = 2


a = A()
print(a.__dict__)
# {'a': 1, 'b': 2}
#获取变量a:
print(a.__dict__['a'])
# 1

如果我们想直接通过字典的方式访问类,obj=A(),dict(obj)直接拿到类的所有实例变量,可以通过如下方式:

class A:
    def __init__(self):
        self.a = 1
        self.b = 2

    def keys(self):
        return ('a','b',)

    def __getitem__(self, item):
        return getattr(self, item)

a = A()
print(dict(a))
#输出:{'a': 1, 'b': 2}

可以看到,通过定义keys方法能够限制类的实例变量的输出,用内置的dict方法就能把类转换成一个普通的字典了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • torch.nn.Module

    上述几个属性中,_parameters、_modules和_buffers这三个字典中的键值,都可以通过self.key方式获得,效果等价于self._para...

    于小勇
  • YOLO v3

    作者在YOLOv2的基础上进行了改进,分辨率为320x320的YOLOv3能在22ms下mAP达到28.2,并且达到了和SSD同样的精度。主要改动为boundi...

    于小勇
  • Python类的__call__()方法

    __call__():Python中,只要在创建类型的时候定义了__call__()方法,这个类型就是可调用的。

    于小勇
  • Python把类当做字典来访问

    如果我们想直接通过字典的方式访问类,obj=A(),dict(obj)直接拿到类的所有实例变量,可以通过如下方式:

    py3study
  • Python string中删除(过滤)

    Python怎么过滤 emoji表情符号呢? 下面是剔除表情字符串的代码片段 python2.7 下测试

    py3study
  • Spark 多文件输出

    在Hadoop 多文件输出MultipleOutputFormat中介绍了如何在Hadoop中根据Key或者Value的值将属于不同的类型的记录写到不同的文件中...

    smartsi
  • 首发!DevOps@BOC — 器用之道,如琢如磨

    我来自中国银行软件中心的一个开发部门,中国银行软件中心从 2013年开始试点敏捷软件开发以及相关CI、CD等实践,而我们内部真正的提 DevOps 比这个要更晚...

    DevOps时代
  • QQ快速识别登录推测

    场景 我们在PC端登录QQ客户端后,访问任何qq.com域下的服务,都可以识别到当前登录的账号。 思考这是如何做到的呢? 推测 首先可以猜测,登录QQ客户端之后...

    春哥大魔王
  • Hera-将小程序打包成移动APP的开发框架

    继移动APP之后,小程序作为当前移动的有一个入口为大家所推崇,不管是微信的小程序还是支付宝的小程序,其实现的思路都是一致的,即通过一个宿主来运行相关的JS页面。...

    xiangzhihong
  • shell脚本打印99乘法表

    用户1733462

扫码关注云+社区

领取腾讯云代金券