Как импортировать
Прежде всего вы почти всегда должны использовать import X
сверх from X import *
.Это связано с тем, как импортируется X.
Короче говоря, если вы используете import X
, существует ссылка, созданная для X, к которой вы можете получить доступ, с помощью этой ссылки вы можете получить доступ ко всем свойствам X, например X.property
.
Если вы используете from X import *
, однако импортируете ссылки на все свойства X. Это означает, что вы можете получить доступ к свойству из X, просто набрав property
.Недостатком этого является то, что если у вас уже есть свойство с таким именем, оно будет перезаписано.
Для получения дополнительной информации об импорте вы можете прочитать эту статью
Решениек проблеме
Возвращаясь к вашей проблеме;Чтобы исправить проблемы с импортом, вы должны импортировать их следующим образом:
jsscraper.py :
import Scraper.JSScraper
# Access the scraper via JSScraper.JSScraper()
Scraper.JSScraper.py : (Примечаниечто вы забыли добавить в свой импорт Scraper, который вызвал ошибку)
import Scraper.BaseScraper
# Access the base scraper via BaseScraper.BaseScraper()
Более читабельное решение
Для более читабельного решения вы также можете использовать псевдоним для импорта, например import X.Y as z
доступ к которому вы можете получить следующим образом: z.property
Для вас это означает следующее:
import Scraper.JSScraper as scraper
# Access the scraper via scraper.JSScraper()
Scraper.JSScraper.py : (Обратите внимание, что вы забыли добавить префикс Scraperв вашем импорте, который вызвал ошибку)
import Scraper.BaseScraper as base
# Access the base scraper via base.BaseScraper()