有人向我建议,作为惯例,可以dict
在“选项”类的帮助下支持在 Python 中构建配置,如下所示:
...
config = {Options.A: 10, Options.B: 20} # produces config = {"A": 10, "B": 20}
result = myObj.someMethod(value, config)
...
我认为这里的想法是为客户端用户提供一个可供选择的选项菜单,而不是依赖用户dict
从头开始构建配置 - 我想一个好处是消除配置字段拼写错误,也许它可以帮助具有前向兼容性。
我能想到的支持这一点的唯一方法是实现一个Options
看起来像这样的类:
class Options:
A = "A"
B = "B"
然而,这种感觉在很多方面都很糟糕。它很脆弱,因为如果用户代码破坏了任何 Options 类字段(例如Options.A="garbage"
),那么它就会损坏。无论如何,实现这些领域就像A = "A"
只是感觉很傻。此外,如果我们正在实现一个 Options 类,我们不应该直接使用 Options 对象而不是使用 Options 类来生成一个dict
?
那么,是否有一种更优雅、更有效的方法来实现所需的config = {Options.A: 10, Options.B: 20}
模式,或者类似的东西?这种模式是不是很熟悉?
编辑:如果不清楚,配置字典只需要包含可用选项的一小部分。