Python 3.10的正式版本在2021年10月4日正式发布,而看Python的创始人吉多范罗苏姆(Guido van Rossum) 推特,置顶了一条信息(2020 - 9 - 16),关于Python 4的快问快答,1.在Python 3.9后面发布的是3.10,目前3.10正式版本已经发布。2. 如果Python存在Version 4,那么从V3到V4的过度更像是V1到V2,而不是V2到V3。
Python是自己常用的工具之一,一直想深入探究,不妨一起来学习一下。
这篇推文包含2个部分,第一部分为Python 3.10有哪些特性,第二部分为Python v2与v3有哪些不同。
第一部分:Python 3.10有哪些特性
1、新的 Union Type表达
Union Type是为了方便标记函数的参数类型以及返回值类型
详细可见参考链接: Union Type介绍链接
另外,这个用法在内置函数中也有应用,比如说BIN函数(built-in function)isinstance函数,该函数用于判断一个对象是否是一个已知的类型,下图表示判断’aaa’ 是否为一个str或者是int类型,结果都是True。
2、zip 新增可选参数strict
zip函数我们知道,在Python中应用也颇为广泛,其生成的是可迭代对象。当二者长度不等时,以长度较小的为准,见下图:
在新版本中,当该选项(strict)为True时,传入zip的两个可迭代项长度必须相等,否则将抛出 ValueError。PASS:感觉引入了一只 *** 。
新版应用:
# ...
z = zip(names,numbers,strict=True)
# ...
3、with可以加括号了
在介绍这个更新功能前,我们先回顾with的用法。
给出code:
with open("/tmp/foo.txt") as file:
data = file.read()
4、match…case语句
这个语法在以前学C++遇到过(久远的记忆)
在Fortran 中的用法(古老的语言,哭):
详细的用法可见:Fortran select 语法参考
在python中,python终于提供了支持,还是加强版的
详细参考见:
PEP 634
PEP 635
PEP 636
5、使用 TypeAlias表明这是个别名,提高程序的可读性
6、更加友好的报错方式
现在,当你的括号、引号未闭合时,python会抛出更加清晰明了的错误
7、准备弃用Distutils 内置库
由于Distutils库的功能已经被此setuptools和package库取代了,所以本着简洁性的原则,Distutils在不久的将来将会被完全的删除掉(用得太少,不cares)
8、字典中新增mapping属性
字典中一般都包含 键–值 对,items,keys和values都增加了一个新的“mapping”属性,通过上述的程序可以发现,对三个方法调用mapping属性后都会返回原字典数据。
10、其他修改大家知道的可以补充
未完待续 …
第二部分:Python2. 与python3.的相互调用
本身想写Python2 与Python3的差异的,Python2与3的差异是非常大的。这样写下去文章内容过长,暂时先开个小头。
Python2版本在Python2.7之后就不在support了,但是Python2我们也能经常遇见。比如ArcMap。ArcGIS用户(包括ArcMap和ArcGIS Pro)里主要使用ArcPy包来处理地理问题,里面包括了所有地理处理功能。要特别注意的是,Arcgis Pro使用python 3,而Arcmap使用版本2。之前接还触过一个小的项目涉及的代码全是Python2。
那遇到这种情况我们怎么去使用Python2呢?
1、可以去配置Python2的环境,激活Python2的环境去运行
比如说在Anaconda中配置Python2的环境
2、2to3是python自带的一个代码转换工具,但是使用也会受一定限制
转换前:
转换后:
3、其他方法