我想創建從列表值或字典鍵或值獲取他們的名字的類的實例。基本上我想要做的是:如何在可迭代鍵後命名類實例?
iter = ['foo', 'bar']
for a in iter:
a = Cls()
,並得到CLS()類,而不必例如通過在每個循環更新引用的foo和酒吧的實例。
在此先感謝。
我想創建從列表值或字典鍵或值獲取他們的名字的類的實例。基本上我想要做的是:如何在可迭代鍵後命名類實例?
iter = ['foo', 'bar']
for a in iter:
a = Cls()
,並得到CLS()類,而不必例如通過在每個循環更新引用的foo和酒吧的實例。
在此先感謝。
也許有dictionnary:
iter = ['foo', 'bar']
result = {}
for a in iter:
result[a] = Cls()
而且在結果你就會有{ 'foo' : instance_of_Cls, 'bar' : instance_of_Cls}
較短:'result = dict((name,Cls())爲iter中的名字)'。 +1。 –
@cedric這是我正在使用的,但我想有foo.attr和foo.meth而不是結果['foo']。attr等。這是非常可讀的,並避免與包裝容器搞亂。不管怎樣,謝謝你。 – Silopolis
@Silopolis:做你想做的事情,你必須修改你的locals()字典,這不是一個好的解決方案......爲什麼你的變量必須由字符串定義? –
所以你想'foo'和'bar'爲局部變量?或者Cédric的回答好嗎? –
如果Ray寫的是,你在找什麼,那麼答案是:你最好不要! – phant0m