在python中创建对象的字典

时间:2011-03-02 09:51:04

标签: python dictionary

我创建了一个对象词典(信用卡):

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 个答案:

答案 0 :(得分:8)

我认为您的代码有两个问题。

  • 如果您希望通过其关联的字符串(在本例中为“VISA”)检索CreditCard对象,则应将字符串作为键,将对象作为值,而不是相反。您的dict应该是这样的,

    credit_cards={'VISA':CreditCard('1000000000000000','3','2011','111')}

    如果同一个字符串有多个对象,则该值可以是这些对象的list

  • frozenset不是dict。它不存储(密钥,值)配对数据。从frozenset创建dict只会创建一个包含dict所有键的集合。你为什么还需要它?