我已经编写了一个纯Python模块,适用于Python 3.0/3.1。为了让更多的人使用,我还想将其与2.x版本兼容(可能只是2.6 / 2.7)。该模块涉及读写一组相关的文件格式,因此2.x和3.x版本之间的差异很小 - 例如,使用
io.BytesIO
而不是StringIO.StringIO
,但并非所有差异都可以通过try/except块轻松处理,例如设置元类。正确的处理方法是什么?是保持两个几乎相同的代码库同步,还是在一个代码库中添加功能检测?或者是一个干净的单一代码库再加上2to3或3to2工具转换?