2016-07-18 30 views
-1

我的数据源提供了字典,我想丰富这些字典并将它们用于别的东西。 但是我不能让我的头在课堂上做出新的字典,无论我做什么,它总是会返回一个空的字典。Dict Class空结果

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

尝试修改'__getitem__'方法来访问'data'。 –

+2

你期望在这里发生什么?为什么不打印'car1b.brand',这会给你'大众'? – jonrsharpe

+0

我期待car1b ['品牌']与car1b.brand – Thijs

回答

1

您需要更改self.carId = carIdself[carId] = carId

试试这个

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

谢谢。通过拧紧。和[..]我正在制作实例而不是实例的值作为Ev。库尼斯指出.. – Thijs