Модули Python с подмодулями и функциями
у меня был вопрос о том, как работают библиотеки, такие как numpy. Когда я импортирую numpy
, Мне предоставляется доступ к множеству встроенных классов, функций и констант, таких как numpy.array
, numpy.sqrt
etc.
но внутри numpy есть дополнительные подмодули, такие как numpy.тестирование.
как это сделать? В моем ограниченном опыте модули с подмодулями-это просто папки с __init__.py
file, в то время как модули с функциями/классами являются фактическими файлами python. Как создать модуль "папка", которая также имеет функции/классы?
1 ответов
папка с .py
и __init__.py
называется package
. Один из этих файлов, содержащих классы и функции-это module
. Вложенность папок может дать вам подпакеты.
так, например, если бы у меня была следующая структура:
mypackage
__init__.py
module_a.py
module_b.py
mysubpackage
__init__.py
module_c.py
module_d.py
я мог бы импортировать mypackage.module_a
или mypackage.mysubpacakge.module_c
и так далее.
вы также можете добавить функции в mypackage
(как функции numpy, которые вы упомянули), поместив этот код в __init__.py
. Хотя это обычно считается уродливым.
если вы посмотрите на библиотеки numpy это __init__.py
вы увидите там много кода - многое из этого определяет эти классы и функции верхнего уровня. The __init__.py
код-это первое, что выполняется при загрузке пакета.