Мне нужно организовать свой код в пакет, но я не могу правильно обрабатывать операторы импорта из-за взаимозависимостей между различными функциями.Ниже показано, как выглядит мой код, и я запускаю его в блокноте Jupyter.Но это становится длинным, и мне нужно организовать его лучше.
import sys
import numpy as np
def Class myClass():
...
def f1():
...
call myClass()
import tkinter as tk
from tkinter import filedialog
def f2():
....
def f3():
...
call f2
some scripts
import pptx
def f4():
....
def f5():
call f2 & f4
....
some more scripts....
and so on (more functions)
Мне нравится создавать пакет, в котором каждый из модулей .py содержит разные определения классов и функций, основанные на некоторыхлогика.Например, все функции, которые обрабатывают манипуляции с файлами, помещаются в файл files.py, а все функции построения графиков - в файл plots.py и т. Д.:
mypackage/
__init__.py
files.py
data.py
analysis.py
plots.py
Я создал указанную выше структуру каталогов и разместил другой наборфункции в каждом из этих модулей.Вот где я застрял.
- Где разместить все операторы импорта?
- Предположим, что myClass находится в files.py, а f1 - в data.py, а f1 использует экземпляр myClass.Где я могу разместить оператор "from files import myClass?"
- Как вы можете видеть в моем примере, f2 используется в f3: где / что я скажу об импорте f2, чтобы f3 мог получить доступ к f2?
- Если я открою интерпретатор Python3, сначала я импортирую mypackage, а затем импортирую каждую из этих функций из каждого из модулей в mypackage?
- Если функция, скажем, f1 (постояннов files.py), вызывается внутри другой функции, например, f2 (постоянно находится в data.py), нужно ли мне импортировать и файлы.f1, и данные.f2 в моем основном коде, или я могу просто сказать «импортировать файлы.f1»"внутри модуля data.py перед def f2 (): оператор?
Я читал об относительном импорте модулей, который, я думаю, имеет отношение к тому, что я делаю, но я все еще в замешательстве.Если бы кто-то мог помочь мне лучше понять это, я был бы очень признателен.Я прошел через Как написать модуль / пакет Python? и https://docs.python.org/3/tutorial/modules.html,, но не смог решить мою проблему после их прочтения.