5

我正在编写一个 Python 模块,它只有大约 20 个有趣的类型和全局方法,但是有很多常量和异常(大约 70 个语言环境常量、60 个编码常量、20 个格式化属性、200 多个异常等等)。因此help(),该模块产生了大约 16,000 行文本,并且对每个异常都有几乎相同的描述。常量的要求并不高,但仍然很难驾驭它们。

组织这样一个模块的pythonic方法是什么?保持原样并依赖其他文档?将常量移动到单独的字典中?进入子模块?在适当的地方将它们添加为类级常量?

请注意,这是一个 C 扩展,因此我无法在此处轻松添加真正的子模块。我听说这sys.modules并没有真正检查对象是否有模块,所以可以在那里添加字典;这样我就可以在导入模块时创建mymodule.locales,mymodule.encodingmymodule.exceptions添加它们。sys.modules这是一个好主意还是太老套了?

4

1 回答 1

1

确实有两种选择可以解决您的问题。第一种方法是对所有常量和异常进行分类,并拥有较少数量的更广泛的类别。这将允许您轻松导航到您想要的类别。字典(或者可能是嵌套字典)将是实现这一点的好方法,因为您可以维护其中包含标题的组。如果您想更多地自定义管理,您可以这样做的第二种方法是创建一个有点像字典的类。它将有一个子对象列表。这样,您可以创建独特的、更易于访问的方法来浏览所有常量和异常,例如处理几个类似异常的新异常类。另一种使其更清洁的方法,需要访问源代码,将所有这些异常变成一个较小的异常组,每个异常组可以处理类似问题的组。这可能是处理异常的更好方法,但您可能无权访问源来修改它。

于 2013-11-22T21:33:57.393 回答