В настоящее время у меня есть парсер с несколькими классами, которые работают вместе.
Для экземпляра: TreeParser создает несколько модулей Product и Reactant, которые, в свою очередь, создают несколько классов Element. TreeParser вызывается методом рендеринга в том же модуле, который вызывается из импортера.
Наконец, если пакет имеет зависимости (например, re и другой другой модуль в той же папке), где лучше всего требовать эти модули? Внутри файла __init__.py
или внутри самого модуля?
EDIT:
При импорте части модуля, который вызывает другой def внутри модуля, как вы называете это def, если он не импортирован?
lib/toolset.py => def add(){ toolset.show("I'm Add"); } def show(text){print text};
если этот файл вызывается из main.py => import lib.toolset
, тогда метод show не будет загружен, или main.py => from lib.toolset import show
не будет работать.
Можно ли поставить import toolset
в начало toolset.py
?
Я думаю, что это ключевое выражение в вашем вопросе.
Я действительно не хочу добавлять имя модуля перед каждым вызовом класса
Мой ответ: Я слышал, что вы говорите, но это стандартная практика в Python.
Любой код чтения программиста на Python, такой как "result = match (blah)", предположит, что вы вызываете локальную функцию внутри своего собственного модуля. Если вы действительно говорите о функции match() в модуле re, они ожидают увидеть "result = re.match(blah)". Вот как это.
Если это помогает, мне не понравился этот стиль, когда я впервые пришел на Python, но теперь я ценю, что он устраняет любую двусмысленность над тем, какая из многих функций, называемых "match", которую я вызываю, особенно когда я прихожу назад, чтобы прочитать код, который я написал шесть месяцев назад.
Я не совсем уверен, в чем проблема, просто вы хотите напечатать меньше?
import longmodulename as ln
и использовать ln.something
вместо longmodulename.something
from longmodulename import ( something, otherthing )
и использовать something
напрямую import *
никогда не бывает хорошей идеей, она беспорядочна с инструментами кодирования, ломается молча, заставляет читателей задаться вопросом, как было определено и так далее...