在Python中创建对象字典

0 投票
1 回答
970 浏览
提问于 2025-04-16 12:48

我创建了一个包含信用卡对象的字典:

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只是会生成一个包含所有键的集合。你为什么需要它呢?

撰写回答