python中dict的子类。。。和命名

2024-05-16 14:36:59 发布

您现在位置: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())

感谢以下帖子提供此信息: What's the difference between globals(), locals(), and vars()?

如果您无法运行上述打印,那么最后三个都将为字典提供一个最终键值对:'object\u of \u Hist\u class':{'apple':'$1.79'}

这就是我要找的。你知道吗

我对栈溢出帖子还不熟悉(对dict子类化之类的东西也不熟悉,我不打算做更多的工作)。无论如何,谢谢你鼓励我更清楚我的职位,并帮助我了解更多有关张贴程序!你知道吗


Tags: of数据instance名称appleobjectvar空间
1条回答
网友
1楼 · 发布于 2024-05-16 14:36:59

听起来你把dict项和属性搞混了。foo.__dict__提供foo的属性。dict中的键值对不作为属性存储,因此它们不会显示在其__dict__中。你知道吗

如果在对象上设置属性,它将显示在那里。例如,object_of_Hist_class.__dict__将包含一个instance_var键。类似地,Hist.__dict__将包含一个__init__键,以及一些其他特殊属性名。你知道吗

更多信息:Python 2 data model

相关问题 更多 >