猿问

将所有默认值移动到一个 python 文件中

我有一个 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是我需要定期对这些值进行实验。将所有内容放在一个地方帮助我不必记住要更改哪个文件。


UYOU
浏览 160回答 2
2回答
随时随地看视频慕课网APP

相关分类

Python
我要回答