Метаклассы Python: редактирование пространства имен после вызова методов `__set_name__`?Python

Программы на Python
Anonymous
Метаклассы Python: редактирование пространства имен после вызова методов `__set_name__`?

Сообщение Anonymous »

Предположим, мы определяем класс с метаклассом.
В теле класса назначаются объекты, реализующие __set_name__ для регистрации себя в структуре данных класса.
Можно ли редактировать пространство имен после запуска методов __set_name__? Типа, отсоединить заполненную структуру данных, разбить ее на две части и добавить части под новые атрибуты?
Проблема в том, что перед вызовом super().__new__(...)< /code> в метаклассе структура данных все еще пуста. После этого оно заполняется, но тогда класс уже создан, и его пространство имен теперь является доступной только для чтения копией пространства имен, созданного в метаклассе.
Есть ли возможность редактирования пространство имен с применением методов __set_name__, например, через перехватчик непосредственно перед его замораживанием в новом классе?

Подробнее здесь: https://stackoverflow.com/questions/788 ... -have-been

Вернуться в «Python»