@Sergey6661313

Как подключить и работать с модулями из папок имя которых заранее не знаешь?

Например я пишу игру и хочу чтобы расы в этой игре были отдельными модулями. Я создал разные папки и импортирую модули так:
мои_расы = []

import races.human.race  # люди
мои_расы.append(race)

import races.goblin.race   # гоблины
мои_расы.append(race)
# и т.д.

print(мои_расы)


но как быть если игра заранее не знает какие расы игрок понадобовлял в игру?
В идеале для пользователя установка расы должна сводится к тупому копированию готовой папки %название_расы% в папку races. А игра должна бы "увидеть" все папки и последовательно их импортировать, но названия папок я могу получить только в виде строк, а комманда import не принимает строки.

Какие идеи? может вообще отказаться от идеи хранить расы в виде py фаилов? но мне очень хочется чтобы у рас можно было использовать уникальные скрипты. Например запрограммировать AI, можно только скриптами и если они будут не в виде py фаилов это убьёт вообще весь интерес писать игру...
Проблема в том что я не могу написать даже так:

мои_расы = []
for racename in ["human", "goblin"]:
   import races.racename.race  # пытается найти папку "racename" вместо подставленной "human"
   мои_расы.append(race)


P.S. игра будет пошаговой так что на производительность можно плевать.
  • Вопрос задан
  • 194 просмотра
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы