#!/usr/bin/py
from collections import defaultdict
"i am getting str object has no attribute appened"
class car:
def __init__(self,car_name):
self.car_name = car_name
class model(car):
def __init__(self,car_model,car_name):
self.car_model=car_model
car.__init__(self,car_name)
cars1=defaultdict(list)
if __name__ == "__main__":
i=1
while(i<=2):
car_name=raw_input("Enter the car name: ")
car_model=raw_input("Enter the car model: ")
brand=model(car_model,car_name)
if brand.car_name in cars1:
print "1"
print brand.car_name
#### here i am getting this error ######
cars1[brand.car_name].append(brand.car_model)
else:
print "2"
cars1[brand.car_name]=brand.car_model
i+=1
for key,values in cars1.items():
print key+":"+values
print cars1.items()
发布于 2018-07-16 00:45:01
您会得到这个错误,因为如果键不存在,您将插入一个字符串作为值(cars1[brand.car_name] = brand.car_model
)。
由于您使用的是defaultdict
,因此甚至不需要执行此检查,只需调用append
即可。如果键不存在,将创建一个空列表,这就是使用defaultdict
的意义所在。
brand = model(car_model, car_name)
cars1[brand.car_name].append(brand.car_model)
https://stackoverflow.com/questions/51350181
复制相似问题