2014-09-28 65 views
1

如何在Python中找到一個預先存在的具有字符串列表的變量?如何在Python中查找包含字符串列表的已有變量?

我有一個字符串列表,如:

letters = ["C", "A", "M", "P"] 

和一組預先存在的變量,如:

C = pygame.image.load("resources/menu icons/imgC.png") 
A = pygame.image.load("resources/menu icons/imgA.png") 
M = pygame.image.load("resources/menu icons/imgM.png") 
P = pygame.image.load("resources/menu icons/imgP.png") 

我找了一個命令,例如:

surface.blit(letters[0]) 

在屏幕上顯示圖像。 任何人都可以幫忙嗎?

回答

1

網絡的方法讓您的命名空間更有條理的優勢,但它也是很好的瞭解globals ,你可以這樣做:

surface.blit(globals()[letters[0]]) 

(假設C,A,M,P是在全局命名空間中定義的。如果它們是局部變量,則可以使用vars()而不是globals()。)

+0

感謝您的快速響應unutbu。我嘗試使用'globals()',並得到以下錯誤信息: – 2014-09-28 19:28:38

+0

Traceback(最近調用最後一次): 文件「main.py」,第109行,在 main() 文件「main.py 「,line 64,in main menuIcons.add((menu.icon(」CAMPAIGN「))) 文件」/media/PROGRAMMING/Files/Reality/menu.py「,第43行,在__init__ self.image中。 blit(globals()[iconComponents [0]]) KeyError:'C' – 2014-09-28 19:29:17

+0

我應該更具體。我的變量是在我的main.py中,並且我想將這些圖像傳遞給menu.py中構建的類中的精靈self.image。如果你希望我可以上傳我的代碼的完整副本。 – 2014-09-28 19:33:02

2

我可能會去找一本字典。

d = { 
    'C': pygame.image.load("resources/menu icons/imgC.png"), 
    'A': pygame.image.load("resources/menu icons/imgA.png"), 
    'M': pygame.image.load("resources/menu icons/imgM.png"), 
    'P': pygame.image.load("resources/menu icons/imgP.png") 
    } 

然後你可以看的東西了這種方式

d['A'] 

或者

d[letters[1]] 
+0

感謝您的快速響應Cyber​​。不幸的是,我不能在這個實例中使用字典,因爲我使用list()來從單個字符串創建字符串列表。 – 2014-09-28 19:26:17

相關問題