您如何构建 python 代码以避免长导入语句?
How do you structure python code to avoid long import statements?
示例目录结构和代码:
root/
├─ main.py
├─ library/
│ ├─ __init__.py
│ ├─ library_code.py
│ ├─ utilities/
│ │ ├─ __init__.py
│ │ ├─ utils_one.py
│ │ ├─ utils_two.py
# main.py
import library as lb
# lb.library_code is how you would access stuff
# library/__init__.py
import [library.]library_code
import [library.]utilities
# library.utilities.__init__.py
import [library.utilities.]utils_one
import [library.utilities.]utils_two
您将如何删除导入语句中 [这些方括号内] 的文本?
当然,做这种结构会导致这个不行:
# library/utilities/utils_one.py
import library.library_code
你几乎是对的。使用relative imports,例如:
# library.utilities.__init__.py
import .utils_one
import .utils_two
最简单的就是使用相对导入。例如在 utils_one.py 你可以做
from . import utils_two
from .utils_two import function_one
您还可以使用 ..
像使用文件系统一样提升层次结构
示例目录结构和代码:
root/
├─ main.py
├─ library/
│ ├─ __init__.py
│ ├─ library_code.py
│ ├─ utilities/
│ │ ├─ __init__.py
│ │ ├─ utils_one.py
│ │ ├─ utils_two.py
# main.py
import library as lb
# lb.library_code is how you would access stuff
# library/__init__.py
import [library.]library_code
import [library.]utilities
# library.utilities.__init__.py
import [library.utilities.]utils_one
import [library.utilities.]utils_two
您将如何删除导入语句中 [这些方括号内] 的文本?
当然,做这种结构会导致这个不行:
# library/utilities/utils_one.py
import library.library_code
你几乎是对的。使用relative imports,例如:
# library.utilities.__init__.py
import .utils_one
import .utils_two
最简单的就是使用相对导入。例如在 utils_one.py 你可以做
from . import utils_two
from .utils_two import function_one
您还可以使用 ..
像使用文件系统一样提升层次结构