У меня возник вопрос о том, как работают библиотеки типа numpy. Когда я импортирую numpy, мне предоставляется доступ к множеству встроенных классов, функций и констант, таких как numpy.array, numpy.sqrt и т. Д.Модули Python с подмодулями и функциями
Но в пределах numpy есть дополнительные подмодули, такие как numpy.testing.
Как это делается? В моем ограниченном опыте модули с подмодулями - это просто папки с файлом инициализации . .py, а модули с функциями/классами являются фактическими файлами python. Как создать модуль «папка», который также имеет функции/классы?
Тогда как можно импортировать библиотеку типа numpy или scipy и содержать как классы/функции (например, модуль), так и другие модули (например, пакет). Так что я могу сделать numpy.array (класс) или numpy.testing.assert ... (получение модуля). – ImpGuard
Я только что ответил, что все это в '__init __. Py'. Любая функция там будет первоклассным членом пакета, когда он загружается интерпретатором. –
А, вот что мне интересно. Я думал, что это будет считаться уродливым, так как много раз. логика пошла бы в нее. Я предполагаю, что все было по-разному закодировано и как-то все объединено в __init__.py после? Кажется довольно полезным иметь что-то подобное, но я не уверен, как его реплицировать, не просто сбрасывая много кода в один файл. – ImpGuard