2014-01-12 73 views
0

我有一個關於pyglet圖像資源定義的問題。pyglet圖像資源來自字典

如果我有很多圖片,我可以在字典中描述它們並用for循環制作圖片嗎?

快捷的方式:

images = {'pic1':'pic1.jpg', 
      'pic2':'pic2.jpg', 
      ...} 

for (name, val) in images.items(): 
    # this is correct code 
    name = pyglet.resource.image(val) 

正常方式:

image1 = pyglet.resource.image("image1.jpg") 
image2 = pyglet.resource.image("image2.jpg") 
... 

與其他詞我想用 '名' 爲變量的名稱,並宣佈像playget.resource.image這個變量(VAL ),其中val是圖像的名稱。

+2

你有沒有嘗試它? – jonrsharpe

+0

是的,得到:AttributeError:'模塊'對象沒有屬性'img1' – user3186945

+1

不是從你在這裏的代碼。請用完整的錯誤追溯和相關代碼編輯您的問題。 – jonrsharpe

回答

2

下面會更有效地利用Dictionary Comprehension和發電機方法iteritems(如果使用的python 2.X):

{key: pyglet.resource.image(value) for k,v in images.iteritems()} 

,或者如果你有一個命名模式('pic1' =>「pic1.jpg」等):

{'pic%s' % index: pyglet.resource.image('pic%s.jpg' % index) for index in xrange(1, 1000)} 
+0

我編輯我的問題。當我使用第一行代碼時,出現錯誤:「super(Player,self).__ init __(img = resources.img1,* args,** kwargs) AttributeError:'module'object has no attribute'img1'」 – user3186945

+0

你可以發佈你的代碼(或其中的一部分)的播放器和資源? – astreal

0

我想找到解決辦法,可能不是最好的,蟒蛇不是我的身邊,如果有人有更好的辦法讓分享吧!
所以這個工作對我來說:在images.iteritems

的(鍵,值)():
     瓦爾()[關鍵] = pyglet.resource.image(值)