你用Python 3了吗?这个飞向火星的语言已经30岁了!
共 3376字,需浏览 7分钟
·
2021-06-07 22:53
新智元报道
新智元报道
来源:reddit
编辑:小匀
【新智元导读】Python30岁了!「没想到Python这么流行!」
不知不觉,Python 30周年啦!
在很多方面,Python都是一种「动态的」语言。没错,它是一直发展的,这一点与C或C++都不一样。
对Python语言来说,2021年3月很重要,因为这期间它核心发生了明显的变化——增加了结构模式匹配,现在可以在Python 3.10.0的最新alpha版本中进行测试。
除了语言本身的变化之外,3月对Python来说是一个充满激动人心和历史性时刻的月份。该语言庆祝了它的30岁生日,并成为第一批登陆其他星球的开源技术之一。
那么从今年3月份到现在,它又发生了哪些变化呢?
一起速览一下吧!
Python Turns 30 Years Old
尽管Python的实际诞生日期是1991年2月20日,也就是0.9.0版本发布的时候,但3月是一个值得庆祝的好月份——今年三月是Python软件基金会成立20周年,该基金会成立于2001年3月6日。
在它的三十年中,Python已经发生了很大的变化--无论是作为一种语言还是作为一个组织。
例如,从Python 2到Python 3的过渡花了十年的时间才完成。
而且,其决策的组织模式也发生了变化。语言的创造者Guido van Rossum曾经是掌舵人,但在2018年成立了一个五人指导委员会来规划Python的未来。
结构模式匹配进入Python 3.10.0
Python 3.10.0是Python的下一个小版本,预计将在2021年10月4日drop on.
这次更新将给核心语法带来一个很大的补充:结构模式匹配,这是在PEP 634中提出的。
你可以说结构模式匹配为 Python 增加了一种开关语句,但不完全准确。模式匹配的作用远不止这些。
例如,以PEP 635中的一个例子为例。假设你需要检查一个对象x是否是一个包含套接字连接的主机和端口信息的元组,以及可选的模式,如HTTP或HTTPS。你可以用if...elif...else块来写这样的东西。
而新的结构模式匹配能让你更简洁地写出:
匹配语句检查对象的形状是否与其中一个案例相匹配,并将对象的数据与案例表达式中的变量名绑定。
但是,并非每个人都对模式匹配感到兴奋,该功能受到了来自核心开发团队内部和更广泛的社区的批评。
在验收公告中,指导委员会承认了这些担忧,同时也表达了他们对该提案的支持。
我们承认模式匹配是对Python的广泛改变,在整个社区达成共识几乎是不可能的。不同的人对语义和语法的不同方面有保留或担忧(指导委员会也是如此)。尽管如此,经过反复讨论,......我们相信PEP 634等文件中规定的模式匹配将是对Python语言的一个伟大补充。
虽然众说纷纭,但模式匹配将出现在下一个 Python 版本中。你可以通过阅读PEP 636中的教程来了解更多关于模式匹配的工作原理。https://www.python.org/dev/peps/pep-0636/
Python Lands on Mars
2月18日,毅力号火星车在经历了七个月的旅程后在火星上着陆!
毅力号依靠大量的开源软件和现成的硬件,使其成为迄今为止最容易获得的火星车项目。
Python就是毅力号上的开源技术之一。它被用于处理登陆时拍摄的图像和视频。
毅力号携带的最令人兴奋的实验之一是火星直升机,这是一架小型无人机,被用来测试在稀薄的火星大气中的飞行。
注意了!Python是飞行控制软件的开发要求之一,该软件被称为F'。
2020年Python开发者调查结果出炉
由JetBrains和Python软件基金会进行的2020年Python开发者调查的结果已经出来了,与去年的调查相比,它们显示了一些有趣的变化。
在2020年,94%的受访者报告主要使用Python 3,这比2019年的90%和2017年的75%有所增加。有趣的是,在计算机图形和游戏开发领域的大多数受访者中,Python 2仍然被广泛使用。
Flask和Django继续主导网络框架,分别有46%和43%的采用。新来的FastAPI是第三大最受欢迎的网络框架,采用率为12%--考虑到2020年是该框架首次出现在选项列表中,这是一个不可思议的壮举。
Visual Studio Code在回答 "你目前使用的Python开发的主要编辑器是什么 "的问题时,获得了5%的份额。这使得微软的IDE获得了29%的份额,并进一步缩小了Visual Studio Code和PyCharm之间的差距,后者仍然以33%的份额位居榜首。
查看调查结果,了解更多关于Python及其生态系统的统计数据。https://www.jetbrains.com/lp/python-developers-survey-2020/
Django 3.2即将推出的新功能
Django 3.2将在2021年4月的某个时候发布,随之而来的是一个令人印象深刻的新功能列表。
一个主要的更新是增加了对功能索引的支持,它允许你对表达式和数据库函数进行索引,例如索引小写字母的文本或涉及一个或多个数据库列的数学公式。
功能性索引是在模型类的Meta.indexes选项中创建的。下面是一个改编自官方发布说明的例子。
这创建了一个名为calc_idx的功能索引,它索引了一个将身高字段除以体重字段,然后加5的表达式。
对PostgreSQL覆盖索引的支持是Django 3.2中另一个与索引相关的变化。一个覆盖索引可以让你在一个索引中存储多个列。这使得只包含索引字段的查询可以得到满足,而无需额外的查表。换句话说,你的查询可以快得多!
另一个值得注意的变化是增加了管理员网站装饰器,简化了自定义显示和操作功能的创建。
关于Django 3.2中新功能的完整列表,请查看官方发布说明。Python贡献者Haki Benita也有一篇有用的概述文章,通过更多的背景和几个例子来引导你了解一些即将到来的功能。https://hakibenita.com/django-32-exciting-features
PEP 621达到最终状态
早在2016年,PEP 518就引入了pyproject.toml文件,作为指定项目构建要求的一个标准化的地方。在此之前,你只能在setup.py文件中指定元数据。这引起了一些问题,因为执行setup.py和读取构建依赖项需要安装一些构建依赖项。
pyproject.toml在过去几年中得到了普及,现在被用于存储构建需求之外的东西。像black autoformatter这样的项目使用pyproject.toml来存储软件包配置。
PEP 621在2020年11月被暂时接受,并在2021年3月1日被标记为最终版本,它规定了如何在pyproject.toml文件中写入项目的核心元数据。从表面上看,这似乎是一个不太重要的PEP,但它代表了继续远离setup.py文件的运动,并指出了Python打包生态系统的改进。
PyPI是GitHub秘密扫描的集成商
Python Package Index,简称PyPI,是下载构成Python丰富生态系统的所有软件包的地方。在pypi.org网站和files.pythonhosted.org之间,PyPI每月产生超过20PB的流量。这相当于超过20,000TB!
有这么多的人和组织依赖PyPI,保证索引的安全是最重要的。这个月,PyPI成为GitHub的官方秘密扫描集成商。现在,GitHub将检查公共仓库的每一次提交是否有泄露的PyPI API令牌,如果发现任何泄露,将禁用仓库并通知其所有者。
4月又会有哪些变化呢?
等待新的总结吧!
参考资料:
https://realpython.com/python-news-march-2021/#python-turns-30-years-old
推荐阅读: