PEP 538 —— 把遗留的C语言本地化编码强制转换为基于 UTF-8 的编码。
PEP 由 Nick Coghlan 撰写及实施。
失败的时候,ImportError会展示模块名及模块
- from ... import ...
路径。(由 Matthias Bussonnier 参与贡献的bpo-29546。)
- __file__
等价于
- object.__format__(x,'')
,而不是
- str(x)
。(由 Serhiy Storchaka 参与贡献的bpo-28974。)
- format(str(self),'')
在大多数的 unix 命令中,parse_intermixed_args() 能让用户在命令行里混用选项和位置参数,它支持大部分而非全部的 argparse 功能。(由 paul.j3 参与贡献的 bpo-14191。)
b2a_uu() 函数现在能接受一个可选的 backtick 关键字参数,当它的值为 true 时,所有的“0”都将被替换为
而非空格。(由 Xiang Zhang 参与贡献的 bpo-30103。)
- '`'
htmlCalendar类具有新的类属性,它能在生成的 HTML 日历中很方便地自定义 CSS 类。(由 Oz Tiram 参与贡献的 bpo-30095。)
parse_multipart() 作为
会返回同样的结果:对于非文件字段,与键相关联的值是一个字符串列表,而非字节。(由 Pierre Quentel 参与贡献的 bpo-29979。)
- FieldStorage
已添加 contextlib.asynccontextmanager()。(由 Jelle Zijlstra 参与贡献的 bpo-29679。)
dis() 函数现在可以反汇编嵌套代码对象(代码解析,生成器表达式和嵌套函数,以及用于构建嵌套类的代码)。(由 Serhiy Storchaka 参与贡献的 bpo-11822。)
README.rst 现已包含在 distutils 的标准自述文件列表中,进而它也分别包含在各源码中。(由 Ryan Gonzalez 参与贡献的 bpo-11913。)
SimpleHTTPRequestHandler 支持 HTTP If-Modified-Since 头文件。如果在头文件指定的时间之后,目标文件未被修改,则服务器返回 304 响应状态码。 (由 Pierre Quentel 参与贡献的 bpo-29654。)
在 SimpleHTTPRequestHandler 中添加
参数,在命令行的 server 模块中添加
- directory
。有了这个参数,服务器将会运行在指定目录下,默认使用当前工作目录。(由 Stéphane Wirtel and Julien Palard 参与贡献的 bpo-28707。)
- --directory
在 locale 模块的
方法中添加了另一个参数 monetary 。如果 monetary 的值为 true,会转换为使用货币千位分隔符和分组字符串。(由 Garvit 参与贡献的 bpo-10379。)
- format_string()
新的 remainder() 函数实现了 IEEE 754-style 的取余操作。(由 Mark Dickinson 参与贡献的 bpo-29962。)
增加了对 fwalk() 中 bytes 路径的支持。(由 Serhiy Storchaka 参与贡献的 bpo-28682。)
(Contributed by Serhiy Storchaka in bpo-28682.)
在Unix平台上,增加了对 scandir() 中 file descriptors 的支持。(由 Serhiy Storchaka 参与贡献的 bpo-25996。)
新的 os.register_at_fork() 函数允许注册 Python 的回调在进程的分支上执行。(由 Antoine Pitrou 参与贡献的 bpo-16500。)
set_trace() 现在需要一个可选的
强制关键字参数。如果已给出,它将会在调试开始前打印至控制台。
- header
string.Template 现在可以分别为花括号占位符和非花括号占位符选择性地修改正则表达式模式。(由 Barry Warsaw 参与贡献的 bpo-1198569。)
sentinel 属性现在会保留自己的同一性,当它们被 copied 或 pickled 时。(由 Serhiy Storchaka 参与贡献的 bpo-20804。)
的
- xmlrpc.server.SimpleXMLRPCDispatcher
及其子类能被用作装饰器。(由 Xiang Zhang 参与贡献的 bpo-7769。)
- register_function()
内部的 unicodedata 数据库已升级,能够使用 Unicode 10。 (由 Benjamin Peterson 参与贡献。)
urllib.parse.quote() 已经从 RFC 2396 升级至 RFC 3986,将
添加到默认情况下从不引用的字符集中。(由 Christian Theune 和 Ratnadeep Debnath 参与贡献的 bpo-16285。)
- ~
函数 encode() 现在能接受一个可选的关键字参数 backtick ,当它的值为 true 时,“0”会被
替代而非空格。(由 Xiang Zhang 参与贡献的 bpo-30103。)
- '`'
函数
现在能接受一个可选的参数 filter,来允许用户选择哪些文件应该被包含在存档中。
- zipapp.create_archive()
及
- LOAD_METHOD
,从而避免为了方法调用的绑定方法对象的实例化,这将导致方法调用的速度提升20%。(由 Yury Selivanov 及 INADA Naoki 参与贡献的bpo-26110。)
- CALL_METHOD
,
- selectors.EpollSelector.modify()
及
- selectors.PollSelector.modify()
将比原来快10%左右。(由 Giampaolo Rodola’ 参与贡献的bpo-30014。)
- selectors.DevpollSelector.modify()
时需要已安装的 libffi 副本。(由 Zachary Ware 参与贡献的bpo-27979。)
- _ctypes
的
- wrapperbase
和
- name
字段的类型现在为
- doc
而非
- const char *
。(由 Serhiy Storchaka 参与参与贡献的bpo-28761。)
- char *
而非
- const char *
。(由 Serhiy Storchaka 参与贡献的bpo-28769。)
- char *
),将会使用 NuGet 来下载 32位的 Python 副本。(由 Zachary Ware 参与贡献的bpo-30450。)
- py -3.6
的支持。(由 Antoine Pitrou 参与贡献的bpo-31370。)
- --without-threads
属性设置为False,追踪钩子现在可以选择不接收来自解释器的
- f_trace_lines
事件。(由 Nick Coghlan 参与贡献的bpo-31344。)
- line
属性设置为True,追踪钩子现在可以选择接收来自解释器的
- f_trace_opcodes
事件。(由 Nick Coghlan 参与贡献的bpo-31344。)
- opcode
,或其被设置为从
- Py_LIMITED_API
到
- 0x03050400
(不含)的值或不小于
- 0x03060000
的值,将弃用函数PySlice_GetIndicesEx()并用宏将其替代。(由 Serhiy Storchaka 参与贡献的bpo-27867。)
- 0x03060100
来替代locale模块中被弃用的format()。(由 Garvit 参与贡献的bpo-10379。)
- format_string()
和
- PyThread_start_new_thread()
返回结果的类型, 及PyThreadState_SetAsyncExc()中参数id的类型从
- PyThread_get_thread_ident()
变为
- long
。(由 Serhiy Storchaka 参与贡献的bpo-6532。)
- unsigned long
字符串包含空字符,就会引起一个ValueError的报错。(由 Serhiy Storchaka 参与贡献的bpo-30708。)
- wchar_t*
与
- py -3-32
也会和
- py -3-64
一样有效,并且现在能接受 -m-64 与 -m.n-64 来强制使用64位 Python,即使32位在使用中也是如此。如果指定版本不可用,py.exe将会报错退出。(由 Steve Barnes 参与贡献的bpo-30291。)
- py -3.7-32
及一个 ASCII 字母组成的未知转义符已在 Python 3.5 中被弃用,现在使用将会报错。
- '\'
模块中的
- ntpath
函数在 Python 3.1 被弃用,现在已被移除。使用splitdrive()函数来替代。
- splitunc()
属性,该属性用于显示为已命名元组类所生成的源码。这是用来提升类创建速度的优化设计的一部分。(由 Jelle Zijlstra 贡献并由 INADA Naoki,Serhiy Storchaka,和 Raymond Hettinger 进一步完善的bpo-28638。)
- _source
,
- Plist
和
- Dict
。函数readPlist()和readPlistFromBytes()返回结果中的 dict 类型值现在就是标准的 dict 类型。你再也不能使用属性访问来访问到这些字典里的项。
- _InternalDict
本小节列出了之前描述的一些更改,以及一些其他bug修复,因而你可能需要对你的代码进行更改。
,
- Module
,
- FunctionDef
及
- AsyncFunctionDef
AST 节点现在新增了一个
- ClassDef
字段,它们自身的首次声明不再被当做是一个 docstring。类和模块的代码对象
- docstring
及
- co_firstlineno
会因这个更改而受到影响。(由 INADA Naoki and Eugene Toder 参与贡献的bpo-29463。)
- co_lnotab
之前设置 umask。(由 Serhiy Storchaka 参与贡献的bpo-19930。)
- makedirs()
已变为在输出中包含关键字参数。(由 Utkarsh Upadhyay 参与贡献的bpo-30302。)
- repr
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、React、前端、后端、产品、设计 等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。
来源: https://juejin.im/post/5a127e60f265da430f31b45b