Проблема, с которой я сталкиваюсь сейчас, заключается в загрузке набора звуковых файлов как их собственных объектов в Pygame. Вы загружаете звук с помощью этого синтаксиса:
sound1 = pygame.mixer.Sound('file.wav')
Скажем, у меня есть семь файлов, и я хочу, чтобы они были загружены и названы sound1 - sound7. И я не хотел загружать их каждый по отдельности. Если бы я не знал, что это ошибочно, я бы попробовал что-то вроде этого:
for i in range(1, 8):
new = 'sound' + str(i)
new = pygame.mixer.Sound(str(new) + 'wav')
Как мне сделать «новую» собственную переменную, а не строку? Я читал о getattr, но это сбивает с толку. Очень хотелось бы узнать, как использовать функции и циклы для динамического создания кода, но пока не могу найти ничего полезного для новичка вроде меня. Используя это в качестве примера, кто-нибудь хотел бы объяснить простым способом, как вы могли бы создавать код внутри кода и превращать строки в используемые переменные/объекты?
Благодарю вас!
sound[2]
- person Blorgbeard   schedule 15.03.2013'sound' + str(i) === 'sound%s' % i
- person Hamish   schedule 15.03.2013