Вложенный import в python
Прошу прощения за возможную очевидность, недавно серьезно изучаю Питон.
В целом разобрался с import, но остался наивный вопрос.
Есть главный модуль main, он импортирует numpy и пару вспомогательных:
import numpy
import func_1
import func_2
Но дело в том, что в func_1, func_2 также требуется numpy.
По наивности я думал, что достаточно импортировать numpy в главном модуле до импорта дочерних, и он туда как-бы подтянется. Понятно, я ошибался, и теперь импорт прописан в каждом модуле.
Но нельзя ли все же это сделать как-то экономнее?
Ответы (1 шт):
Допустим, что это работало бы как вы предположили выше. А теперь представим себе, что вы пишите другую программу, где вы не используете numpy, но используете модуль func_1. Вы делаете импорт func_1 в главном модуле, запускаете main, и получаете ругань на непонимание что такое numpy. "Но постойте! Какой numpy? В главном модуле никакой numpy не используется, зачем я должен его импортировать?" - подумаете вы. И окажетесь правы. Вот почему всё необходимое для модуля должно импортироваться в самом модуле. Чтобы модуль был самодостаточен.