专栏首页python3Python把类当做字典来访问

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 条评论
登录 后参与评论

相关文章

  • PyQt5--QCheckBox

    py3study
  • python3--尝试写一个三级菜单

    py3study
  • Python与Cisco的事儿之四

       以下代码实现的流程: cdp -->获取相应链接的信息-->自动写进设备相对应的端口--->configure保存-->configure备份到TFTP服...

    py3study
  • Python把类当做字典来访问

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

    于小勇
  • 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

扫码关注云+社区

领取腾讯云代金券