Python 3.8即将发布,这几个变化你必须知道
作者 | Jake Edge
译者 | Rachel
出品 | Python大本营(ID:pythonnews)
【导读】近日, Python 3.8.0b1 版本和 beta 版相继发布, Python 3.8 版的新特征已经基本成型。尽管最终版本的官方发布时间为 10 月,但实际上,用户现在已经可以开始体验新版本的特性了。
海象运算符
这是 Python 3.8 中最重要的特性,也是最可能引起争议的特性。这一特性针对 Python 中赋值语句的语法进行了丰富。
海象运算符指形如“:=”的运算符,一般和 while 及 if 语句搭配使用,可以在对变量进行判断的同时对其赋值。该语法的主要目的为降低多模式匹配及循环语句的复杂性。例如对于下列多模式匹配代码:
可被简化为:
使用海象运算符能够使得代码的内容更佳明晰,这一特性在其他编程语言中实际同样存在。
调试中支持使用 f-string
Python 3.6 中加入了 f-string ,尽管该语法带来了很多方便的特性,但在调试中不能使用。因此在本次更新中, Python 加入了一些针对 f-string 的附加语法,以便于调试中对输出进行优化。
在以往版本中,f-string 的语法为:
Python 3.8 中则变为:
两者的输出结果相同,均为:
另外,还可使用修饰器对输出进行调整。例如,"!s"使结果以字符串形式输出,以替代默认的 repr() 类型。“!f” 则能够对输出的格式进行调整。示例如下:
f-string 中空格的使用方式也值得注意。示例如下:
这一新特性能够帮助用户更好地输出其调试信息和日志信息。
positional-only 参数
PEP 570 中提出了一种表示 positional-only 参数的新语法,用于表示不能作为关键字参数进行传递的参数。例如,对于 Python 自带的 pow() 函数,调用方式如下:
这一语法限制了函数中参数的使用,而在新版本中,可将函数重写如下:
其中,“/”表示函数参数列表中 positional-only 参数的结束。其使用类似于“*”,“*”在 Python 中用于表示关键字参数。举例来说,对于下述语句:
该语句表示, a 和 b 为 positional-only 参数,e 和 f 必须使用关键词进行传递,c 和 d 的传递方式则不受限制,即:
可移动的 __pycache__
__pycache__ 文件夹是 Python 解释器自创的文件目录,用于保存生成的 .pyc 文件,用于记录解释器处理 .py 文件后生成的二进制码。
这一文件主要用于支持处理多个版本的 Python 代码,以及使用 CPython 以外编写的代码(例如 PyPy)。被处理的代码均自动生成格式为“name.interp-version.pyc”的代码并保存到 __pycache__ 文件夹中。
为了提供更多可选性,Python 的新版本中提供了一个新的环境变量 PYTHONPYCACHEPREFIX ,用于指定解释器存放和查找 .pyc 文件的位置,该环境变量也可使用如下命令行语句来进行设置:
其他特性
Python 的新版本还会为 C 语言拓展加入更快的调用方式,该方式在之前仅支持 CPython 。这一调用方式将在 3.8 版本中试运行,并预计在 3.9 版本中正式推出。另外,编译器中的初始化配置将被清空,以便于将 Python 程序嵌入其他环境,减少环境变量及其他设置对代码的影响。
另外, Python 标准库的一些模块也得到了更新。例如,用于处理 Python 抽象语法树的 ast 模型中新增了 statistics 和 typing 方法。更多调整可参阅“What's New In Python 3.8”文档。
原文链接:
https://lwn.net/SubscriberLink/793818/0c6f9dd271021cd4/
(*本文为 AI科技大本营原创文章,转载请联系 1092722531)
◆
精彩推荐
◆
“只讲技术,拒绝空谈!”2019 AI开发者大会将于9月6日-7日在北京举行,这一届AI开发者大会有哪些亮点?一线公司的大牛们都在关注什么?AI行业的风向是什么?2019 AI开发者大会,倾听大牛分享,聚焦技术实践,和万千开发者共成长。
目前,大会早鸟票限量发售中~扫码购票,领先一步!
推荐阅读
性能比GPU高100倍!华人教授研发全球首个可编程忆阻器AI计算机
中文repo“霸榜”GitHub Trending,国外开发者不开心了
豪投10亿!华为放话:3年培养100万AI人才!网友神回应了
《长安十二时辰》教了哪些算法知识?
非科班出身程序员,如何超越科班程序员?
谷歌停止中国版搜索引擎;李楠宣布离职魅族;微软用 Rust 替代 C/C++ | 极客头条
首批8款5G手机获3C认证:华为占4款;IBM获AT&T“几十亿美元”云计算合同;马库斯:未来薪酬将以Libra发放
用50年前NASA送阿波罗上天的计算机挖矿什么体验? 出一个块要10^18年……

相关文章:

Ubuntu 12.10 拨号上网及停用方法
2019独角兽企业重金招聘Python工程师标准>>> 本人电脑在设置了拨号上网过后,本来原先插上网线就能上网,现在反而不能上了,在网上找了些办法,再进行了些修改,最后成功了,现在把我的方法给大家分享…

011:视图函数介绍
视图: 视图一般都写在 app 的 views.py 中。并且视图的第一个参数永远都是 request (一个HttpRequest)对象。这个对象存储了请求过来的所有信息,包括携带的参数以及一些头部信息等。在视图中,一般是完成逻辑相关的操作…

Windows XP下vs2010中配置OpenCV2.4.3
1、 从http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.3/下载OpenCV2.4.3; 2、 将OpenCV-2.4.3.exe放到D:\Soft\OpenCV2.4.3文件夹下,解压到当前文件夹下,生成一个opencv文件夹; 3、 下载并安装CMake&…

改变shell read命令的隔符
2019独角兽企业重金招聘Python工程师标准>>> orgIFSIFS IFS"." ls */.fst/.txt | while read var1 var2 var3 do IFS$orgIFS fstcompile --isymbols${path1}isymtab.txt --osymbols${path1}osymtab.txt ${var1}/.fst/.txt ${var1}/.fst fstdraw --isymbol…

AutoML前沿技术与实践经验分享 | 免费报名
传统机器学习的解决范式可表示为:ML Solution ML expertise Computation Data新机器学习范式可表示为:New ML Solution 100x Computation 100x Data通过表示的变化,可以看出,传统范式的“ML expertise”被“100x”的“Comput…

传承乡邦文化,展示国学之美,联墨香飘远,文明花放红;
2019独角兽企业重金招聘Python工程师标准>>> 12月16日上午,阳光普照,翰墨飘香。由揭阳市文联指导、揭阳市楹联学会主办、榕城区图书馆协办的“我们的美好生活”原创联墨作品展在榕城区图书馆隆重开幕。 此次活动意在传承乡邦文化,…

VS2010运行速度优化汇总
1、 工具-->选项-->环境:视觉体验,前对勾全去掉; 2、 工具-->选项-->环境-->启动:启动时(P)下拉列表框中选择:显示空环境; 3、 工具-->选项-->文本编辑器-->C/C-->高级&am…

(一)JDBC入门及简介
引用百度对JDBC的解释: JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供…

OpenCV中OpenCL模块函数
It currently develop and test on GPU devices only. This includes both discrete GPUs(NVidia,AMD), as well as integrated chips(AMD APU and intel HD devices). The ocl module can be found under the “modules”directory. In “modules/ocl/src” you can find the…

这位创造GitHub冠军项目的“老男人”,堪称10倍程序员本尊
作者 | 马超,CSDN博客专家,金融科技从业者来源 | CSDN博客7月12日一款叫做TDengine的时序数据库项目在GitHub上开源了,这个项目一经发布就稳稳占据了GitHub排行榜的C位,目前TdEngine已经累积了5000多个star,并且连续一周排在上升榜…

hdu 1724 Ellipse——辛普森积分
题目:http://acm.hdu.edu.cn/showproblem.php?pid1724 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define db double using namespace std; const db eps1e-5; int T;db a,b,l,r; db f(db x){return sqrt(…

模仿Hibernate的逆向工程_java版_源码下载
在这篇blog:"Hibernate逆向工程原理_java版本"中谈到了Hibernate逆向工程原理。 我喜欢理论和实践相结合....so,今天我试着模仿hibernate的逆向工程,哈哈,我成功啦.... 话不多说....直接上图先: 项目结构: 运…

http协议进阶(三)http报文
一、报文流 http报文是在http应用程序之间发送的数据块(也可称为数据包)、这些数据块以一些文本的元信息(meta-information)开头,描述了报文的内容及含义,后面跟着 可选的数据部分,这些报文在客…

一行Python代码能实现什么丧心病狂的功能?
作者 | 天元浪子来源 | CSDN博客手头有 109 张头部 CT 的断层扫描图片,我打算用这些图片尝试头部的三维重建。基础工作之一,就是要把这些图片数据读出来,组织成一个三维的数据结构(实际上是四维的,因为每个像素有 RGB…

Windows7 32位机上,OpenCV中配置GPU操作步骤
1、 查看本机配置,查看显卡类型是否支持NVIDIA GPU,本机显卡为NVIDIA GeForce 8400 GS; 2、 从http://www.nvidia.cn/Download/index.aspx?langcn下载最新驱动并安装; 3、 从https://developer.nvidia.com/cuda-toolkit根据…

【2018.12.15】【考试总结】【模拟+逆序对+树状数组+贪心+multiset】爆零之旅
这是我悲惨的接近爆零的一次考试,但是本蒟蒻不能放弃,还是要总结的QAQ 答题卡 【题目背景】 八月是个悲惨的月份。先不谈炎热的天气,对于新生来说,八月意味着军训; 而对于高二高三的同学来说,八月意味着开学…

RememberMe 功能的实现(base-auth使用说明)
2019独角兽企业重金招聘Python工程师标准>>> 日常记录,代码是根据SpringSecurity写的。 ###写个Entity类实现UserDetails <!-- lang: java --> package com.lqz.b2c.base.web.controller.member.support;import com.lqz.b2c.base.entity.Passport;…

AutoML前沿技术与实践经验分享 | 免费公开课
传统机器学习的解决范式可表示为:ML Solution ML expertise Computation Data新机器学习范式可表示为:New ML Solution 100x Computation 100x Data通过表示的变化,可以看出,传统范式的“ML expertise”被“100x”的“Comput…

Windows 7 64位机上搭建Android开发环境
1、从http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html下载Java JDK,根据机子本身配置,选择jdk-7u25-windows-x64.exe下载,将其安装到D:\ProgramFiles\Java\jdk1.7.0_25文件夹下,并将D:\Pro…

近4万Star,登月源码登顶GitHub,这位女程序员“拯救”了阿波罗
作者 | 伍杏玲转载自CSDN(ID:CSDNnews)1969 年 7 月 20 日,“阿波罗 11 号”飞船登月,宇航员尼尔阿姆斯特朗(Neil Armstrong)成功踏上月球表面,标志着人类第一次踏上月球,…

Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤
1、 先按照http://blog.csdn.net/fengbingchun/article/details/10439281中操作搭建好基本的Android开发环境; 2、 打开Eclipse,-->Window-->AndroidVirtual Device Manager-->New-->AVD Name:Android_OpenGLES, Device:GalaxyNexus(4.65…

animate默认时长所带来的问题及解决
一、需求描述 做一个进度条长度逐渐减少的动画,当进度条长度小于等于0时,关闭动画,并弹出透明底板显示新提示。 二、问题描述 初始代码如下: //设置进度条初始长度 var progressLength 180; //设置一个定时器 var timer …

避坑指南:如何选择适当的预测评价指标?| 程序员评测
作者 | Nicolas Vandeput译者 | Tianyu责编 | Jane出品 | AI科技大本营(ID:rgznai100)【导语】因为不存在一个适用于所有情况的评价指标,所以评估预测精度(或误差)就变成了一件不是那么容易的事情。只有通过…

利用JNI技术在Android中调用C++代码
JNI是Java Native Interface的简称,也就是Java本地接口,它提供了若干的API实现Java和其它语言的通信(主要是C&C)。 1、打开Eclipse,File-->New-->Project…-->AndroidApplication Project-->Application Name:TestJNI,Packag…

微软开源数据处理引擎 Trill,每天可分析万亿次事件
微软近日开源了数据处理引擎 Trill,它每天能够分析万亿次事件。项目地址:https://github.com/Microsoft/trill当下每毫秒处理大量数据正成为一种常见的业务需求,此次微软开源的 Trill,据说每秒能够处理高达数十亿事件,…

【杭电ACM】1097 A hard puzzle
【杭电ACM】1097 A hard puzzle http://acm.hdu.edu.cn/showproblem.php?pid1097 先用int手写了算法结果竟然wrong answer,估计是测试数据很大,直接上BigInteger 和modPow(),轻松解决。 1 //author:pz2 3 import java.math.BigInteger;4 im…

mvc 下的 signalR使用小结
2019独角兽企业重金招聘Python工程师标准>>> sirnal下有两种使用。 一种是 Persistent Connection ,另外一种是Hubs 。详细请看 https://github.com/SignalR/SignalR/wiki ; hubs支持浏览器与客户端互相调用方法。所以应用更广泛。 在前台…

利用JNI技术在Android中调用C++形式的OpenGL ES 2.0函数
1、 打开Eclipse,File-->New-->Project…-->Android-->AndroidApplication Project,Next-->Application Name:FillTriangle, PackageName:com.filltriangle.android,Minimum Required SDK:API 10Android2.3.3(Gingerbread),Next--&g…
Python三十年技术演变史
作者 | 宋天龙,大数据技术专家,触脉咨询合伙人兼副总裁,前Webtrekk中国区技术和咨询负责人(Webtrekk,德国的在线数据分析服务提供商)。擅长数据挖掘、建模、分析与运营,精通端到端数据价值场景设…

php 扩展包链接
https://pecl.php.net/package-stats.php?cid7转载于:https://www.cnblogs.com/gaoyuechen/p/10148754.html