栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 3.10 版本号引发的 bug

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 3.10 版本号引发的 bug

2021年10月,Python 的 3.10 版本正式发布。但之前的 Python 3.6、3.7、3.8、3.9 子版本都为个位数,程序员可能习惯了这种版本格式,因此编写涉及版本号的代码时,未曾考虑到 3.10 版本。
本位列举一些相关bug,已在笔者的旧代码中出现,需要修复。

版本号为数值类型?

有的代码会将版本号保存为数值类型,便于比较大小:

>>> 3.8 < 3.9     # 以前可以这样比较版本号
True
>>> 3.8 < 3.10    # 现在出现了 3.10 ,直接比较版本号会出错
False
>>> 3.10          # 将 3.10 当作 float 类型直接保存会出错,应该采用 str 类型
3.1
版本号为字符串类型?

有的代码会将版本号保存为字符串类型,且认为该字符串的长度总是为 3 :

>>> import platform
>>> version = platform.python_version()
>>> version
'3.9.7'
>>> version[:3]      # 获取前 3 位字符作为版本号
'3.9'

遇到 3.10 版本时,这种惯性思维就会出错:

>>> version = '3.10.0'
>>> version[:3]
'3.1'
版本号排序?

有的代码会将版本号直接排序:

>>> sorted(['3.7', '3.8', '3.9'])          # 以前没问题
['3.7', '3.8', '3.9']
>>> sorted(['3.7', '3.8', '3.9', '3.10'])  # 现在问题来了,3.10 排序之后成了最小的版本
['3.10', '3.7', '3.8', '3.9']
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/350114.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号