Форум сайта python.su
Есть мнение, что при повторной загрузке модуля в другой модуль (класс) питон не обращается к файлу с модулем, а делает копию… или не делает…или дает ссылку на загруженный модуль? Собственно, это и есть вопрос.
Если обратиться к модулю так: mod=sys.module то модуль автоматом подгружается, но куда?
Таким образом я могу обратиться к методам модуля из любого места в программе, но происходит ли при этом обращение к файлу модуля?
Офлайн
pioner1.Возвращается ссылка.
1. Есть мнение, что при повторной загрузке модуля в другой модуль (класс) питон не обращается к файлу с модулем, а делает копию… или не делает…или дает ссылку на загруженный модуль? Собственно, это и есть вопрос.
2. Если обратиться к модулю так: mod=sys.module то модуль автоматом подгружается, но куда?
3. Таким образом я могу обратиться к методам модуля из любого места в программе, но происходит ли при этом обращение к файлу модуля?
Офлайн
ссылка - да, так логично.
спасибо большое.
по поводу загрузки автоматом -
mod=sys.module работает, если до этого не было импорта! проверил. но только для библиотечных модулей, есесно.
Офлайн
Не работает! Просто эти “библиотечные модули” всё же были импортированы, но не в ваших скриптах, а в процессе запуска питона.
Офлайн
poltergeistДа, в словаре sys.mоdule уже сидят модули, но вызвать методы можно после ‘import’, иначе сообщение, что нет такого модуля. При вызове sys.module import не нужен!
Не работает! Просто эти “библиотечные модули” всё же были импортированы, но не в ваших скриптах, а в процессе запуска питона.
Офлайн
pionerНет, тут вы путаете. import нужен для того что добавить этот модуль или имена внутри него в локальную область видимости. Сам модуль может быть загружен кем и когда угодно (конечно до момента вызова import).
Да, в словаре sys.mоdule уже сидят модули, но вызвать методы можно после ‘import’, иначе сообщение, что нет такого модуля. При вызове sys.module import не нужен!
pionerНет, не ерунда. Изначально подгружаемые модули нужны для того чтобы интерпретатор мог сформировать правильное окружение для работы.
Если “”библиотечные модули“ всё же были импортированы” при запуске питона, то ерунда получается - при запуске грузится вся папка Lib ???? … что противоречит концепции модульности питона.
pionerМожно считать это квантовыми флуктуациями и не обращать внимание.
еще по поводу обращения к файлам - все же, import работает медленнее чем если передать ссылку на ранее загруженный модуль в параметрах раза в 3! … правда, порядок величин тысячные доли секунды.
Офлайн
Еще idle подгружает модули, а он на питоне написан, я им пользуюсь.
тему можно закрыть. благодарю.
Офлайн