仅加载给定 class 所需的模块

Load only needed modules for a given class

我有一个帮助文件,用三个不同的 classes SQL,MLAWS.

将其命名为 helper.py

每个 class 包含不同的辅助函数,但并非所有辅助函数都需要相同的包,例如 AWS 需要 boto3 模块,但 SQL 不需要。

我试过了

class AWS():
 def __init__(self):
   import boto3
   s3 = boto.client("s3")
 
 def magic():
   < do stuff with boto3>

但是当我调用 aws = AWS().magic() 时,我得到“boto3 未定义”。

我可以将所有包都放在 helper.py 的最顶部,但我不想

我建议将文件分成三部分。

- helper   # <-- make this as a folder
  - __init__.py
  - AWS.py
  - SQL.py
  - ML.py

__init__.py

from .AWS import AWS
from .SQL import SQL
from .ML import ML

如果您想在某个地方使用 AWS

from helper import AWS