我試圖在利用pygame的Python程序中壓縮重複。我現在有一些行數是這樣的:Python:在for循環中使用變量進行替換
if pygame.key.get_pressed()[pygame.K_q]: q.PerformNote()
if pygame.key.get_pressed()[pygame.K_w]: w.PerformNote()
if pygame.key.get_pressed()[pygame.K_e]: e.PerformNote()
if pygame.key.get_pressed()[pygame.K_r]: r.PerformNote()
if pygame.key.get_pressed()[pygame.K_t]: t.PerformNote()
我想實現這樣的事情:
keyList = ['q', 'w', 'e', 'r', 't']
for currentKey in keyList:
if pygame.key.get_pressed()[pygame.K_currentKey]:
currentKey.PerformNote()
產生的誤差是
AttributeError: 'module' object has no attribute 'K_currentKey'
我想我可能在BASH最近花了太多時間,因爲這個結構對我的大腦來說非常有意義。我已經搜索了四周,不知道實現這一點的正確方法。
看看[getattr](https://docs.python.org/2/library/functions.html#getattr) – vanza
your keyList應該包含pygame.K_ *,而不是直接使用字母名稱 – njzk2
(同樣,在bash中將會有東西指示變量的使用。可能是$ {}或其他東西)。 – njzk2