Я работаю над своей программой GarlicSim, в которой пользователь создает симуляцию, тогда он может манипулировать ею по своему усмотрению, а затем он может сохранить ее в файл.Python: Альтернативы травлению модуля
Недавно я попробовал реализовать функцию сохранения. Естественная вещь, которая возникла для меня, - это очертить объект Project
, который содержит всю симуляцию.
Проблема заключается в том, что объект Project
также включает в себя модуль - это «пакет моделирования», который представляет собой пакет/модуль, который содержит несколько критических объектов, в основном функций, которые определяют симуляцию. Мне нужно сохранить их вместе с симуляцией, но кажется, что невозможно рассортировать модуль, поскольку я был свидетелем, когда я пытался рассолить объект Project
, и было создано исключение.
Что было бы хорошим способом обойти это ограничение?
(Следует также отметить, что пакет моделирования импортируется динамически в программе.)
Вы имеете в виду, а не ссылки на динамически импортируемый модуль, чтобы ссылаться на класс, определенный внутри динамически импортированный модуль? –
Да; Создание экземпляра класса динамически кажется более чистым, чем динамическое импортирование модуля. – djc
Это интересно. Но я думаю, что это немного проблематично. Способ, которым работает моя программа, заключается в том, что пользователь выбирает, какой пакет имитации импортировать. То есть существуют заранее написанные пакеты моделирования для различных типов моделирования (например, для физики Ньютона, одна для теории игр ...). Вы предлагаете мне просто определить один класс внутри этих предварительно написанных пакетов и все объекты должны быть его атрибутами? –