Модули 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 код-это первое, что выполняется при загрузке пакета.