Python dict子类实例的行为不同于dict实例

2024-10-04 11:30:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近在Python中注意到,如果我创建一个dict子类,我可以添加属性,但是dict的实例不是这样的,例如:

class aDict(dict):
    pass

myDict = aDict({"name" : "A"})

myDict.color = "red"

print(myDict.color) #"red"

myOtherDict = dict({"name" : "B"})
myOtherDict.color = "green" #"AttributeError: 'dict' object has no attribute color"

Tags: 实例name属性greenpassred子类dict
1条回答
网友
1楼 · 发布于 2024-10-04 11:30:03

你在和myDict的互动 __dict__是赋予对象的属性字典,这与myOtherDict不同,myOtherDict是内置字典。您可以通过尝试以下方法来了解如何与它们交互:

dir(myDict)
dir(myOtherDict)

您可以通过myDict的dict属性查看什么是可访问的(并通过vars()将其与myOtherDict上缺少的属性进行比较)

vars(myDict)
vars(myOtherDict)

有更多的信息herehere帮助我理解你的问题

相关问题 更多 >