最近我一直在研究基于文本的游戏作为个人项目。没有真正的理由,仅仅是为了它。我通常会非常精通Python(我已经完成了整个CodeCademy的Python课程并完成了我自己的研究),但是我发现了一些我想确保在实现之前能够正常工作的东西。
基本上,是否可以将类的参数嵌套到列表中?
这是一个类似于我正在做的例子:
class Item(object):
def __init__(self, name, weight):
self.name = name
self.weight = weight
tempDict = {
'flashlight' = ['flashlight',5],
}
flashlight1 = Item(tempDict['flashlight'])
print flashlight1.name
应该返回:
flashlight
我真的希望这会奏效。我有一个完整的ID结构,依赖于这个工作。如果没有,我怎么能做类似的事情,这样我可以有一个规定的项目和基础值列表,我可以分配给具有ID的特定项目?
提前致谢。
答案 0 :(得分:3)
如果您unpack tempDict['flashlight']
放置*
,它将会有效:
>>> class Item(object):
... def __init__(self, name, weight):
... self.name = name
... self.weight = weight
...
>>> tempDict = {
... 'flashlight' : ['flashlight',5],
... }
>>> flashlight1 = Item(*tempDict['flashlight'])
>>> print flashlight1.name
flashlight
>>> print flashlight1.weight
5
>>>
在上面的演示中:
flashlight1 = Item(*tempDict['flashlight'])
相当于:
flashlight1 = Item('flashlight', 5)
答案 1 :(得分:0)
如果您使用字典而不是列表来存储参数,那么您的参数字典会更清晰:
tempDict = {
'flashlight': { 'name': 'flashlight', 'weight': 5 }
}
flashlight1 = Item(**tempDict['flashlight'])