72、Python v2/v3 迁移与共存:策略与工具指南

Python 2/3迁移与共存策略

Python v2/v3 迁移与共存:策略与工具指南

1. Unicode 绑定的必要性

在 Python 编程中,有时需要绑定 Unicode 名称而非简单引用。在 Python v2 中,右侧(RHS)的 Unicode 来自内置命名空间,若不进行赋值操作,就无法从模块中导入它。例如, tappio/writer.py tappio/lexer.py 模块进行了修改,从 tappio.compat 导入 Unicode。在 writer.py 中, str(token) 被改为 unicode(token) ;在 lexer.py 中, isinstance(ch, str) 恢复为 isinstance(ch, unicode) 。完成这些更改后,所有测试在 v2 和 v3 环境下都能通过。

2. 单源树实现 v2/v3 支持

编写能在 Python v2 和 v3 环境中正确执行的代码是可行的,但需要在编写时格外小心,通常还需添加特定代码以实现两个环境间的兼容性。Python 的官方移植指南文档提供了关于版本间兼容性的实用建议。

有多个库可支持单源开发,以下是一些常见的库:
- six :是最早提供兼容性适配的项目。它在需要与早期 v2 实现保持兼容时特别有价值,因为它是在 Python 2.6 盛行时开发的,考虑到了 2.6 兼容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值