当前位置: 首页 > 编程笔记 >

Python实现把类当做字典来访问

沙柏
2023-03-14
本文向大家介绍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方法就能把类转换成一个普通的字典了

以上这篇Python实现把类当做字典来访问就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 我想知道python字典如何在后台运行,尤其是动态方面?创建字典时,其初始大小是多少?如果我们用很多元素更新它,我想我们需要扩大哈希表。我想我们需要重新计算散列函数以适应新的更大的散列表的大小,同时又与先前的散列表保持某种逻辑? 如您所见,我不完全了解此结构的内部。 问题答案: (部分)以下答案来自“ 升级Python技能”:检查字典。有关Python哈希表的更多信息,请参见The H

  • 3.7中的标准库可以递归地将数据类转换为判决(文档中的示例): 我正在寻找一种方法,当有嵌套时,可以将判决转换回数据类。像这样的东西只有在数据类的字段是简单类型而不是数据类时才有效。我熟悉jsonickle,但是它带有一个突出的安全警告。 编辑: 答案建议使用以下库: 英安岩 mashumaro(我用过一段时间,效果很好,但很快就遇到了棘手的角落案例) pydantic(非常好用,优秀的文档和较少

  • 本文向大家介绍Python实现合并字典的方法,包括了Python实现合并字典的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现合并字典的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 问题内容: 我是Python的长期用户,并且非常喜欢使用字典的方式。它们非常直观且易于使用。是否有与python字典等效的Java?我听说有人在使用哈希图和哈希表。有人可以解释使用哈希表和哈希图与python字典的异同吗? 问题答案: Python的类是Python文档非正式地称为“ 映射类型 ”的实现。在内部,使用哈希表实现。 Java的类是接口的实现。在内部,使用哈希表实现。 语法上有一些细微

  • 本文向大家介绍Python实现把数字转换成中文,包括了Python实现把数字转换成中文的使用技巧和注意事项,需要的朋友参考一下 周末在家,写了个小程序,用于将阿拉伯数字转换化大写中文。程序没经过任何优化,出没经过详细的测试,挂到网上,方便将来有需要的时候直接拿来用。

  • 我想更改字典的纬度和经度值。 它正在抛出以下错误消息: 对于此它在targetWaypoints内打印一个完整的字典。我想打印纬度值。 提前谢谢。