У меня есть большая библиотека, написанная на C++, и кто-то создал интерфейс, чтобы использовать его в python (2.6) автоматически. Теперь у меня много классов с методами getter и setter. Действительно: я их ненавижу.Автоматическое преобразование из getter/setter в свойства
Я хочу повторно реализовать классы с более питоническим интерфейсом, используя свойства. Проблема в том, что у каждого класса есть сотни геттеров и сеттеров, и у меня много классов. Как я могу автоматически создавать свойства?
Например, если у меня есть класс с именем MyClass
с GetX()
и SetX(x)
, GetY
, SetY
, и т.д ... методы, как я могу автоматически создать производный класс MyPythonicClass
со свойством X
(читаемым, если есть геттер и записывается, если есть сеттер) и так далее? Я бы хотел, чтобы механизм позволял мне пропустить некоторые пары getter/setter, где лучше делать работу вручную.
Я не очень эксперт, вы можете дать мне пример для моего случая? –
Для этого вам не нужно использовать метакласс. Вероятно, более понятным будет код для определения '__getattr__' и' __setattr__'. Вы можете привести их в свой класс через наследование. –