Найти - Пользователи
Полная версия: сколько раз загружается модуль ?
Начало » Python для экспертов » сколько раз загружается модуль ?
1
pioner
Есть мнение, что при повторной загрузке модуля в другой модуль (класс) питон не обращается к файлу с модулем, а делает копию… или не делает…или дает ссылку на загруженный модуль? Собственно, это и есть вопрос.
Если обратиться к модулю так: mod=sys.module то модуль автоматом подгружается, но куда?
Таким образом я могу обратиться к методам модуля из любого места в программе, но происходит ли при этом обращение к файлу модуля?
Андрей Светлов
pioner
1. Есть мнение, что при повторной загрузке модуля в другой модуль (класс) питон не обращается к файлу с модулем, а делает копию… или не делает…или дает ссылку на загруженный модуль? Собственно, это и есть вопрос.
2. Если обратиться к модулю так: mod=sys.module то модуль автоматом подгружается, но куда?
3. Таким образом я могу обратиться к методам модуля из любого места в программе, но происходит ли при этом обращение к файлу модуля?
1.Возвращается ссылка.
2. Модуль автоматом не подгружается - возвращается ссылка на уже готоый.
3. К файлу - не происходит.
pioner
ссылка - да, так логично.
спасибо большое.

по поводу загрузки автоматом -
mod=sys.module работает, если до этого не было импорта! проверил. но только для библиотечных модулей, есесно.
poltergeist
Не работает! Просто эти “библиотечные модули” всё же были импортированы, но не в ваших скриптах, а в процессе запуска питона.
pioner
poltergeist
Не работает! Просто эти “библиотечные модули” всё же были импортированы, но не в ваших скриптах, а в процессе запуска питона.
Да, в словаре sys.mоdule уже сидят модули, но вызвать методы можно после ‘import’, иначе сообщение, что нет такого модуля. При вызове sys.module import не нужен!

Если “”библиотечные модули“ всё же были импортированы” при запуске питона, то ерунда получается - при запуске грузится вся папка Lib ???? … что противоречит концепции модульности питона.

еще по поводу обращения к файлам - все же, import работает медленнее чем если передать ссылку на ранее загруженный модуль в параметрах раза в 3! … правда, порядок величин тысячные доли секунды.
Александр Кошелев
pioner
Да, в словаре sys.mоdule уже сидят модули, но вызвать методы можно после ‘import’, иначе сообщение, что нет такого модуля. При вызове sys.module import не нужен!
Нет, тут вы путаете. import нужен для того что добавить этот модуль или имена внутри него в локальную область видимости. Сам модуль может быть загружен кем и когда угодно (конечно до момента вызова import).
pioner
Если “”библиотечные модули“ всё же были импортированы” при запуске питона, то ерунда получается - при запуске грузится вся папка Lib ???? … что противоречит концепции модульности питона.
Нет, не ерунда. Изначально подгружаемые модули нужны для того чтобы интерпретатор мог сформировать правильное окружение для работы.
pioner
еще по поводу обращения к файлам - все же, import работает медленнее чем если передать ссылку на ранее загруженный модуль в параметрах раза в 3! … правда, порядок величин тысячные доли секунды.
Можно считать это квантовыми флуктуациями и не обращать внимание.
pioner
Еще idle подгружает модули, а он на питоне написан, я им пользуюсь.
тему можно закрыть. благодарю.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB