如何组织包含大量常量和异常的Python模块?

我正在编写一个Python模块,它只有大约20种有趣的类型和全局方法,但有很多常量和异常(大约70个常量用于语言环境,60个常量用于编码,20个格式化属性,超过200个异常,等等).因此,此模块上的help()会生成大约16,000行文本,并且每个异常的描述几乎相同.常数并不是那么苛刻,但仍难以导航它们.

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

请注意,这是一个C扩展,所以我不能在这里轻松添加一个真正的子模块.我听说sys.modules没有真正检查对象是否有模块,所以可以在那里添加字典;这样我就可以创建mymodule.locales,mymodule.encoding和mymodule.exceptions,并在导入模块时将它们添加到sys.modules中.这是一个好主意还是过于讨厌?

解决方法:

有两种方法可以解决您的问题.第一种方法是对所有常量和异常进行分类,并使用较少数量的更广泛的类别.这样您就可以轻松导航到您想要的类别.字典(或可能是嵌套的字典)是实现此目的的好方法,因为您可以维护带有标题的组.第二种方法是,如果你想更多地自定义管理,你可以做一个类似于字典的类.它将有一个子对象列表.这样,您可以创建唯一的,更易于访问的方法来浏览所有常量和异常,例如处理几个类似异常的新异常类.另一种使其更清洁的方法是将所有这些异常分成一小组异常,这些异常可以处理类似问题的组.这可能是处理异常的更好方法,但您可能无法访问源来修改此异常.

上一篇:react之路:使用actionCreators和constants


下一篇:windows环境下lib和dll的区别和联系详细