在Python中创建对象字典
我创建了一个包含信用卡对象的字典:
class CreditCard:
def __init__(self,number,expire_date_month,expire_date_year,CVC):
self.number=number
self.expire_date_month=expire_date_month
self.expire_date_year=expire_date_year
self.CVC=CVC
credit_cards={CreditCard('1000000000000000','3','2011','111'):'VISA'}
credit_cards_frozen=frozenset({CreditCard('1000000000000000','3','2011','111'):'VISA'})
但是在执行这些命令时出现了错误:
print credit_cards['VISA'] #KeyError: 'VISA'
print credit_cards_frozen['VISA'] #TypeError: 'frozenset' object is not subscriptable
我的代码哪里出问题了?
1 个回答
8
我觉得你的代码有两个地方不太对。
如果你想通过关联的字符串(在这个例子中是'VISA')来获取CreditCard对象,你应该把字符串当作键,把对象当作值,而不是反过来。你的
dict
应该像这样:credit_cards={'VISA':CreditCard('1000000000000000','3','2011','111')}
如果有多个对象对应同一个字符串,值可以是这些对象的
list
。frozenset
并不是dict
。它不存储(键,值)配对的数据。从dict
创建frozenset
只是会生成一个包含所有键的集合。你为什么需要它呢?