Поэтому я пытаюсь выяснить, возможно ли то, что я хочу сделать. Я пишу тестовый код для приложения, и у меня есть объекты, содержащие свойства, представляющие некоторые элементы, которые есть в интерфейсе нашего продукта. Что я хочу сделать, так это иметь возможность передавать средство запуска приложения и объект данных в новый класс и динамически генерировать набор свойств доступа на основе подмножества свойств в объекте данных. Моя идея на данный момент:
- Создайте подкласс свойства, который включает метаданные, необходимые для извлечения дополнительной информации из интерфейса.
- Рефакторинг существующих объектов данных для использования нового подкласса свойств для соответствующих полей в пользовательском интерфейсе.
- Create a new generator class that accepts the UI driver object and the data object that
- reflects the data object to get a list of all the members of it that are of the new property subclass type
- сохраняет информацию из пользовательского интерфейса на основе метаданных в подклассе свойств для членов экземпляра класса генератора (планируется использование
setattr
) - создавать свойства во время выполнения, чтобы члены, созданные в (b), были доступны только для чтения и предоставляли интерфейс, совместимый с существующим кодом (т. е. используя
.[name]
вместо.[name]()
)
Я думаю, что все понял, кроме шага 3c. Есть ли способ динамически создавать свойства во время выполнения? Любая помощь будет принята с благодарностью.