有人能给我解释一下如何通过遍历一系列名称和一系列dict来返回一个类的新实例吗?在
我知道我可以使用**
打开我的字典,并且我知道我可以遍历我的字典列表。在
所以我尝试创建一个for
循环函数,为cardList
中的每个卡创建我的Card
类的新实例。在
以下是我认为有效的代码:
def createCardInstances(x):
for i in range(len(x)):
namesOfCards[i] = Card(**cardList[i])
return namesOfCards[i]
namesOfCards
是一个卡片名称列表,我想将其转换为Card
类的实例。cardList
是表示卡片及其值的字典列表。在
例如,我可以这样做:
Knight = Card(**cardList[0])
效果很好。但是,如果我正在开发一个纸牌游戏,并且有超过100张单独的牌,我想避免每次都必须写出每一张牌的名称和复制粘贴=Card(**cardList[])
代码。在
如何自动创建新实例?这可行吗?在
编辑:
我试图使用namesOfCards
中的名称来生成Card
的新实例。有人建议我在制作纸牌游戏的同时学习python的下一步是让它更面向对象。在
所以我现在的目标是使用保存在列表namesOfCards
中的卡片的名称来生成Card
的新实例。i、 电子邮箱:
[Knight, Mage, Warrior, ...]
我想有能力接受这些并做到这一点:
Knight = Card(**cardList[0])
Mage = Card(**cardList[1])
Warrior = Card(**cardList[2]
以此类推。在
有可能吗?或者我需要使用列表理解建议将所有类实例存储到一个列表中,然后必须使用new_cards[0].name
或{
确保您的列表包含字符串
我不确定这是否是您需要的,但请查看以下代码:
^{pr2}$使用它,您可以遍历列表或字典来创建类的实例
当你把一张单张卡片递给它时,你是在退回它吗?另外,如果
cardNames
是一个名称列表,则不应使用Card
对象覆盖它。你应该能做这样的事吗?在或者干脆
^{pr2}$如果您想将该卡限制为
namesOfCards
中的卡。你可以的(注意:这一切都假设您没有两张同名的卡)
也可以像问题所问的那样将这些卡片放入您的本地名称空间中,但我强烈反对这样做。但如果你真的想。。。在
相关问题 更多 >
编程相关推荐