descriptor protocol в Python 2.6 определен только для определений классов и, следовательно, может использоваться только экземплярами.Дескрипторы в глобальном масштабе?
Есть ли какой-то эквивалент для инструмента получения/набора глобальных переменных?
Я пытаюсь ускорить импорт модуля, который взаимодействует с главной системой, и, как таковой, должен выполнить некоторое дорогое исследование хоста. Результаты (дорогостоящего) зонда хранятся в глобальном модуле, который инициализируется во время импорта; поэтому я пытаюсь отложить инициализацию до полной необходимости.
Пожалуйста, никаких комментариев о том, что глобалы являются злыми. Я знаю, что это такое и когда их использовать.
Мой текущий план - создать глобальный экземпляр, который использует дескрипторы, и переместить все мои текущие глобальные переменные в атрибуты этого экземпляра. Я ожидаю, что это сработает; Я просто спрашиваю, есть ли другой способ.
Возможно (хотя я и не рекомендовал бы это) подкласса 'module', добавить необходимые дескрипторы, создать экземпляр подкласса и заменить запись' sys.modules' текущего модуля новым экземпляром, все в модуле собственный файл. – kwatford