2021年10月,Python 的 3.10 版本正式发布。但之前的 Python 3.6、3.7、3.8、3.9 子版本都为个位数,编写的代码可能习惯了这种版本格式,不能兼容 3.10 版本。
本位列举一些相关bug。
版本号为数值类型?
有的代码会将版本号保存为 float 类型:
>>> 3.9
3.9
现在这样操作会出错:
>>> 3.10
3.1
版本号为字符串类型?
有的代码会将版本号保存为字符串类型,且认为该字符串的长度总是为 3 :
>>> import platform
>>> version = platform.python_version()
>>> version
'3.9.7'
>>> version[:3] # 获取前 3 位字符作为版本号
'3.9'
现在这样操作会出错:
>>> version = '3.10.0'
>>> version[:3]
'3.1'
版本号比较大小?
有的代码会将两个版本号直接比较大小:
>>> 3.8 < 3.9
True
>>> '3.8' < '3.9'
True
现在这样操作会出错:
>>> 3.9 < 3.10
False
>>> '3.9' < '3.10'
False