2016-07-18 5 views
-1

私のデータソースはdictsを提供しています。私はdictsを充実させ、何か他のもののために使用したいと思います。 しかし、私はクラスの周りに新しいdictを作るために頭を上げることはできません、私は何でも、それは常に空のdictを返します。Dictクラス空の結果

class car(dict): 
    def __init__(self, carId, data): 
     self.carId = carId 
     self.brand = data['Brand'] 
     self.type = data['Type'] 

    def addColor(self, color): 
     self.color = color 

car1 = {'Brand': 'Volkswagen', 'Type': 'Polo'} 
car2 = {'Brand': 'Volvo', 'Type': 'C30'} 

car1b = car("someID", car1) 

print car1b['someID'] 
+0

を試してみてください。 –

+2

ここで何が起こると思いますか?なぜ 'print car1b.brand'は、'フォルクスワーゲン 'を与えるのでしょうか? – jonrsharpe

+0

car1b ['brand']とcar1b.brandと同じ結果が期待されました。 – Thijs

答えて

1

あなたはself[carId] = carIdself.carId = carIdを変更する必要があります。

は `data`にアクセスするには、` __getitem__`方法を変更しようと、この

class car(dict): 
    def __init__(self, carId, data): 
     self[carId] = carId 
     self.brand = data['Brand'] 
     self.type = data['Type'] 

    def addColor(self, color): 
     self.color = color 

car1 = {'Brand': 'Volkswagen', 'Type': 'Polo'} 
car2 = {'Brand': 'Volvo', 'Type': 'C30'} 

car1b = car("someID", car1) 

print(car1b["someID"]) 
+0

ねじ込むことによって。 [..]私は、インスタンスとしての値ではなくインスタンスを作成していました。 Kounisは指摘した.. – Thijs