Хобрук: Ваш путь к мастерству в программировании

Перезагрузите всю структуру пакета в Python

Я работаю в Maya. Что мне нужно, так это импортировать пользовательский пакет и полностью перезагрузить его, включая все подпакеты и модули. В основном потому, что я хочу, чтобы Maya автоматически заполняла для меня путь к модулю, пока я пишу. Например, у меня есть такая структура пакета

root (package)
    subpackage1 (package)
        __init__.py (module)
        a.py (module)
        b.py (module)

    subpackage2 (package)
        c.py (module)
        d.py (module)
        e.py (module)

Что я сделал с файлами __init__.py, так это импортировал все подмодули и один за другим перезагрузил их туда.

пример: root.subpackage1.__init__.py

import a
import b
reload(a)
reload(b)

Это очень утомительно, и поэтому я полагаю, что есть гораздо лучший способ импортировать и перезагружать всю структуру

Когда я впервые импортирую пакет, вся структура загружается в память.

import root
reload(root)
root.subpackage1.a.my_function()

Итак, давайте предположим, что теперь я обновляю файл .py и добавляю функцию с именем my_test. Мне нужно снова перезагрузить всю структуру пакета, чтобы иметь возможность оценить ее так.

root.subpackage1.a.my_test()

не делая этого...

from root.subpackage import a
reload(a)
a.my_test()

Я запираю все, чтобы перезагрузить, когда я импортирую и перезагружаю root, как лучше всего это сделать? Заранее спасибо.



Ответы:


Новые материалы

Не зря же это называют интеллектом
Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

LeetCode Проблема 41. Первый пропущенный положительный результат
LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..

Расистский и сексистский робот, обученный в Интернете
Его ИИ основан на предвзятых данных, которые создают предрассудки. Он словно переходит из одного эпизода в другой из серии Черное зеркало , а вместо этого представляет собой хронику..

Управление состоянием в микрофронтендах
Стратегии бесперебойного сотрудничества Микро-фронтенды — это быстро растущая тенденция в сфере фронтенда, гарантирующая, что удовольствие не ограничивается исключительно бэкэнд-системами..

Декларативное и функциональное программирование в стиле LINQ с использованием JavaScript с использованием каррирования и генератора ...
LINQ - одна из лучших функций C #, которая обеспечивает элегантный способ написания кода декларативного и функционального стиля, который легко читать и понимать. Благодаря таким функциям ES6,..

Структуры данных в C ++ - Часть 1
Реализация общих структур данных в C ++ C ++ - это расширение языка программирования C, которое поддерживает создание классов, поэтому оно известно как C с классами . Он используется для..

Как я опубликовал свое первое приложение в App Store в 13 лет
Как все началось Все началось три года назад летом после моего четвертого класса в начальной школе. Для меня, четвертого класса, лето кажется бесконечным, пока оно не закончится, и мой отец..