Python中的字典子类..和同名

  • 本文关键字:子类 字典 Python python
  • 更新时间 :
  • 英文 :


我想知道是否有人知道如何打印一个命名空间,该命名空间将显示"apple"和"$1.79"的键值对。

我明白,如果我取消评论

#print(object_of_Hist_class)

我会看到我正在询问的数据...但我很好奇我是否可以做到

print(something.__dict__) 

(显然,我不知道应该是什么(查看"苹果"和"1.79 美元"数据。这是我正在谈论的代码:

class Hist(dict):
def __init__(self, instance_var):
self.instance_var = instance_var
object_of_Hist_class = Hist('cha cha cha')
object_of_Hist_class['apple'] = '$1.79'
#print(object_of_Hist_class)
print(object_of_Hist_class.__dict__)
print(Hist.__dict__)
print(dict.__dict__)

上面的原始帖子

解决方案如下

以下是我一直在寻找的... 首先,我将使用 vars 重新创建我之前获得的结果

print(vars(object_of_Hist_class))
print(vars(Hist))

以下是我第一次问这个问题时所寻找的内容(特别是我希望在显示命名空间内容的字典中找到的"数据",可以在以下打印的最右侧看到(:

print(vars())
print(locals())
print(globals())

感谢以下帖子提供此信息: globals((、locals(( 和 vars(( 有什么区别?

如果您无法运行上述打印,最后三个都为字典提供了最终键值对: 'object_of_Hist_class': {'apple': '$1.79'}

这就是我一直在寻找的。

我是堆叠溢出帖子的新手(并且不熟悉子类字典之类的东西,我不打算做更多的事情(。无论如何,感谢您鼓励我更清楚地了解我的帖子并帮助我了解有关发布程序的更多信息!

听起来您将字典项目与属性混淆了。foo.__dict__为您提供了foo的属性。 字典中的键值对不会存储为属性,因此它们不会显示在其__dict__中。

如果您在对象上设置了一个属性,它将显示在那里。 例如,object_of_Hist_class.__dict__将包含一个instance_var密钥。 同样,Hist.__dict__将包含一个__init__键,以及其他一些特殊属性名称。

详细信息:Python 2 数据模型

最新更新