【发布时间】:2013-05-05 01:33:04
【问题描述】:
我正在编写一个 Python 模块,它只有大约 20 个有趣的类型和全局方法,但有很多常量和异常(大约 70 个语言环境常量、60 个编码常量、20 个格式化属性、200 多个异常等等)在)。结果,此模块上的help() 产生了大约 16,000 行文本,并且对每个异常都有几乎相同的描述。常量的要求并不高,但仍然很难驾驭它们。
组织这样一个模块的pythonic方法是什么?保持原样并依赖其他文档?将常量移动到单独的字典中?进入子模块?在适当的地方将它们添加为类级常量?
请注意,这是一个 C 扩展,因此我无法在此处轻松添加真正的子模块。我听说sys.modules 并没有真正检查对象是否有模块,所以可以在那里添加字典;这样我可能会创建mymodule.locales、mymodule.encoding 和mymodule.exceptions,并在导入我的模块时将它们添加到sys.modules。这是个好主意还是太老套了?
【问题讨论】:
-
超过 200 个异常似乎远远超过了顶部 - 我想不出有这么多异常的任何 python 库。
-
我在这里同意@brunodesthuilliers。 Python 标准库本身没有定义超过 60 个异常。
-
如果很多异常都有这样相似的描述,为什么不把相似的合二为一呢?
-
这些不是这个模块的例外,它们来自宿主应用程序。我只是为每个错误代码添加一个异常。我不认为我可以将它们结合起来,因为如果我这样做了,我该如何识别它们?
标签: python exception constants organization