2017-12-04 12 views
0

私は最近、dictサブクラスを作成すると属性を追加できますが、これはdictのインスタンスでは当てはまりません。すなわち: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" 

答えて

0

あなたがmyDictの __dict__オブジェクトに指定された属性辞書であると対話している、これは作り付けの辞書ですmyOtherDictに異なっています。

)(

dir(myDict) 
dir(myOtherDict) 

、あなたはmyDictの辞書属性を介してアクセス可能なものを参照してください(とVARS経由myOtherDictの属性の不足とそれを比較することができます:あなたは、あなたがしようとすることで、これらとの対話方法との違いを見ることができます

vars(myDict) 
vars(myOtherDict) 

あなたの問題を理解するために私を助けているherehere可能ないくつかのより多くの情報があります。

関連する問題