В моей программе есть пакет, заполненный различными .py файлами, каждый из которых содержит определение класса. Я хочу сделать список, где каждая запись является экземпляром одного из этих классов. Кроме того, моя программа не знает, сколько файлов находится в пакете или как называются файлы или классы, поэтому я не могу просто импортировать каждый файл. В идеале я должен иметь возможность изменять содержимое пакета (извлекать файлы, помещать новые и т. Д.) Без необходимости переписывать другие части программы. Есть ли способ сделать это?
Первоначально у меня была строка 'if __name__ ==' __main__ ': return foo ()' в каждом файле, и я пытался добавить в список, используя execfile (), но, очевидно, это не работает. Есть идеи?
Извините, если это немного расплывчато. Я постараюсь уточнить, если это необходимо. Я использую Python 2.5.4.
EDIT:
Моя программа - генератор случайных персонажей для Dungeons and Dragons. Я сделал пакет для всех основных типов данных, которые нужны программе. У меня есть пакет для классов, рас, предметов и т. Д., И при создании символа моя программа составляет список каждого типа данных, который можно отсортировать при создании символа. Например, при экипировке персонажа, программа может просмотреть список оружия и отфильтровать все оружие, которое не подходит для этого персонажа, а затем случайным образом выбрать из оставшихся.
Я не хочу указывать имена файлов, потому что мне бы хотелось иметь возможность легко добавить эту программу позже. Если позже в будущем я захочу добавить больше типов оружия в программу, я мог бы просто написать несколько новых описаний классов и поместить их в пакет Оружия, и программа могла бы использовать их без необходимости редактирования какого-либо другого кода.