我有一个 python 文件,其中包含我项目中所有其他类的所有默认值
# config.py
DEFAULT_WORKER_TYPE = 'A'
DEFAULT_METRIC_TYPE = 'euclid'
...
# worker.py
import config
class Worker:
def __init__(self, worker_type=config.DEFAULT_WORKER_TYPE):
pass
# metric.py
import config
class Metric:
def __init__(self, metric_type=config.DEFAULT_METRIC_TYPE):
pass
这工作正常,但后来我想使用Enumforworker_type和metric_type代替原始字符串以避免输入错误
# config.py
from worker import WorkerType
from metric import MetricType
DEFAULT_WORKER_TYPE = WorkerType.A
DEFAULT_METRIC_TYPE = MetricType.EUCLID
# worker.py
from enum import Enum
import config
class WorkerType(Enum):
A = 'A'
B = 'B'
class Worker: # the same
# metric.py
from enum import Enum
import config
class MetricType(Enum):
EUCLID = 'euclid'
MANHATTAN = 'manhattan'
class Metric: # the same
现在,在我看来,后一个版本效率不高,因为它有某种循环导入,如果我的主程序只使用一个文件(worker.py例如),它仍然必须导入所有其他文件(metric.py),因为config.py全部导入其中。
有没有更好的方法来实现这一目标?
我将所有默认值移入的原因config.py是我需要定期对这些值进行实验。将所有内容放在一个地方帮助我不必记住要更改哪个文件。
相关分类