包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里] 】!
Python 3.14 预发布版已经发布。这是 Python 社区计划的 7 个版本中的第 3 个 alpha 版本。
Python 已经进入市场很长一段时间了,作为一名 Python 开发人员,我很高兴地告诉大家 Python 每次发布新版本时都会进行重大更新。就在几个月前,随着 Python 3.13 的发布,我们看到了可选 GIL 变化的重大更新,而Python 的最新发布版本3.14有一些重大改进,我将在此列出这些更。我在下面列出了与此新版本 Python 一起发布的前 5 个新更新。
1.重新加载Python环境
"os.environ"和"os.environb"保存着Python程序启动时定义的缓存环境变量。
当一些环境变量在 Python 脚本之外更新时,挑战就出现了。我们都知道 Python 开发人员喜欢挑战。Python 社区一直在努力解决这个问题,现在他们带来了好消息。Python 3.14 中"os"模块的最新更新之一,就是通过新添加的 Python 内置函数"os.reload_environ()“来用最新值更新"os.environ”。
它的工作原理如下:
Python 3.14 . 0a3 ( tags/ v3. 14 . 0a3: 401bfc6, Dec 17 2024 , 10 : 58 : 10 )
[ MSC v. 1942 64 bit ( AMD64) ] on win32
Type "help" , "copyright" , "credits" or "license" for more information.
>> > import os
>> >> os. environ = os. reload_environ( )
>> >>
现在,作为开发人员,可以使用reload_environ()方法用最新值更新 os.environ。
注意:reload_environ()函数不是线程安全的。在另一个线程中修改环境时调用它是未定义的行为。
2. 不再急切地评估注释
在讨论这个功能之前,我们先来回答一个非常重要的问题——什么是注释?
Python 中的注释 是代码的一部分,提供元数据并启用类型提示。注释提供有关变量、函数参数和返回值的信息。注释可帮助程序员添加有关哪个变量可能需要哪种类型的值的元数据。
例如
>> > defaddition( num1: int , num2: float ) - > float :
. . . return num1 + num2
上面addition()`使用注释定义了参数和返回类型。 以前,Python 会急切地评估注释。现在情况已经改变了。从 Python 3.14 版本开始 — — 注释存储在专用注释函数中,仅在需要时进行评估。
这有什么帮助?
此更改旨在使 Python 中的注释在大多数情况下更高性能和更易用。新annotationlib
模块提供了检查延迟注释的工具。
注释可以采用以下三种格式进行评估——
VALUE
— 将注释评估为运行时值,类似于早期 Python 版本中的行为
FORWARDREF
— 此格式用特殊标记替换未定义的名称
STRING
— 这将以字符串形式返回注释
此示例展示了这些格式的行为方式
>> > from annotationlib import get_annotations, Format
>> > deffunc( arg: Undefined) :
> . . . pass
> . . .
>> > get_annotations( func, format = Format. VALUE)
> Traceback ( most recent call last) :
> File "<python-input-10>" , line 1 , in < module>
> get_annotations( func, format = Format. VALUE)
> ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
> File "C:\Users\varun\AppData\Local\Programs\Python\Python314\Lib\annotationlib.py" ,
> line 707 , in get_annotations
> ann = _get_dunder_annotations( obj)
> File "C:\Users\varun\AppData\Local\Programs\Python\Python314\Lib\annotationlib.py" ,
> line 847 , in _get_dunder_annotations
> ann = getattr ( obj, "__annotations__" , None )
> File "<python-input-9>" , line 1 , in __annotate__
> deffunc( arg: Undefined) :
> ^ ^ ^ ^ ^ ^ ^ ^ ^ ``NameError: name 'Undefined' isnot defined
>> > get_annotations( func, format = Format. FORWARDREF)
{ 'arg' : ForwardRef( 'Undefined' ) }
>> > get_annotations( func, format = Format. STRING)
{ 'arg' : 'Undefined' }
3.map() 方法中的数组长度检查
在 Python 中,"map()"函数的作用类似于循环。它以函数和可迭代对象(如列表或元组)作为输入。对于可迭代对象中的每个项目,"map()"将给定的函数应用于它。这将创建一个包含每个函数调用结果的新可迭代对象。
本质上,"map()"这是一种将相同操作应用于集合中每个元素的便捷方法。
之前,你可以这样编写 map() 函数:
>> > defmul( a, b) :
> . . . return a * b
> . . .
>> >> l1 = [ 1 , 2 , 3 , 4 ]
>> > l2 = [ 5 , 6 , 7 ]
>> > result= list ( map ( mul, l1, l2) )
> [ 5 , 12 , 21 ]
这里,l2包含 3 个项目,而 包含 4 个项目l1。在 Python 3.14 中strict=True`使用该函数时,可以使用标志更好地处理此问题-“map()”
>> > def mul ( a, b) :
. . . return a * b
. . .
>> > l1 = [ 1 , 2 , 3 , 4 ]
>> > l2 = [ 5 , 6 , 7 ]
>> > result= list ( map ( mul, l1, l2, strict= True ) )
Traceback ( most recent call last) :
File "<python-input-33>" , line 1 , in < module>
result= list ( map ( mul, l1, l2, strict= True ) )
alueError: map ( ) argument 2 is shorter than argument 1 `
4. 解包值——改进错误消息
对于 Python 开发人员来说,当编写代码并遇到错误时,错误消息可以帮助找出代码中的错误。
与使用以前的 Python 版本相比,改进的错误消息使您的生活变得更加轻松。
例如,考虑以下代码,其中解包失败 -
>> > item1, item2, item3 = 1 , 2 , 3 , 4
Traceback ( most recent call last) :
File "<python-input-0>" , line 1 , in < module>
item1, item2, item3 = 1 , 2 , 3 , 4
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
ValueError: too many values to unpack ( expected 3 , got 4 )
现在,你将收到更具描述性的错误消息 -ValueError: too many values to unpack (expected 3, got 4)
5. 两种新的操作方法
Python 3.14 带来了两种新的运算符方法:
operator.is_none()
operator.is_not_none()
operator.is_none(obj)等价于obj is None且operator.is_not_none(obj)等价于obj is not None。
总结
最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!
文末福利
最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里] 】领取!
① Python所有方向的学习路线图,清楚各个方向要学什么东西 ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析 ③ 100多个Python实战案例,学习不再是只会理论 ④ 华为出品独家Python漫画教程,手机也能学习
可以扫描下方二维码领取【保证100%免费 】