@@ -1049,13 +1049,13 @@ msgid ""
10491049" marked as deprecated; it *will* be tightened up again in a future Python "
10501050"version."
10511051msgstr ""
1052- "Some of the functions in the :mod:`socket` 模块中的某些函数仍然是宽容的。 "
1053- "例如, ``socket.connect( ( 'hostname', 25) ) `` 是正确的形式,传递一个表示 IP 地址的元组,但 "
1054- "`` socket.connect('hostname', 25)`` 也可以工作。 :meth:`socket.connect_ex "
1055- "<socket.socket.connect_ex >` 和 :meth:`socket.bind <socket.socket.bind>` "
1056- "也是类似的宽松方式。 2.0alpha1 会更严格地检查这些函数,但是由于文档实际上使用了错误的多参数形式,许多人编写的代码在更严格的检查下会出错。 "
1057- "面对公众的反应 GvR 撤销了这些理性,因此对于 :mod:`socket` 模块,文档已被修正,多参数形式只是被标记为已弃用;在未来的 Python "
1058- "版本中它 *将会* 再次变得严格。"
1052+ ":mod:`socket` 模块中的某些函数仍然是宽容的。 例如,``socket.connect( ('hostname', 25) )`` "
1053+ "是正确的形式,传递一个表示 IP 地址的元组,但 ``socket.connect('hostname', 25)`` 也可以工作。 "
1054+ ":meth:` socket.connect_ex <socket.socket.connect_ex>` 和 :meth:`socket.bind "
1055+ "<socket.socket.bind >` 也是类似的宽松方式。 2.0alpha1 "
1056+ "会更严格地检查这些函数,但是由于文档实际上使用了错误的多参数形式,许多人编写的代码在更严格的检查下会出错。 面对公众的反应 GvR "
1057+ "撤销了这些理性,因此对于 :mod:`socket` 模块,文档已被修正,多参数形式只是被标记为已弃用;在未来的 Python 版本中它 *将会* "
1058+ "再次变得严格。"
10591059
10601060#: ../../whatsnew/2.0.rst:684
10611061msgid ""
@@ -1076,8 +1076,8 @@ msgid ""
10761076"written to take advantage of this fact will break in 2.0."
10771077msgstr ""
10781078":exc:`AttributeError` 和 :exc:`NameError` 异常现在有了更友好的错误消息,其文本内容类似于 ``'Spam' "
1079- "instance has no attribute 'eggs'`` 或 ``name 'eggs' is not "
1080- "defined``。 之前的错误消息只是缺少的属性名称,如 ``eggs``,因此利用这一事实编写的代码在2.0中会中断 。"
1079+ "instance has no attribute 'eggs'`` 或 ``name 'eggs' is not defined``。 "
1080+ "之前的错误消息只是缺少的属性名称,如 ``eggs``,因此利用这一事实编写的代码在 2.0 中会中断 。"
10811081
10821082#: ../../whatsnew/2.0.rst:694
10831083msgid ""
@@ -1095,12 +1095,12 @@ msgid ""
10951095"the ``%`` operator (``%d``, ``%i``, ``%x``, etc.). For example, ``\" %d\" % "
10961096"2L**64`` will produce the string ``18446744073709551616``."
10971097msgstr ""
1098- "在Python 2.0中 ,做了一些工作使得整数和长整数更加可互换。在1 .5.2中,为Solaris添加了大文件支持,允许读取大于2 "
1099- "GiB的文件 ;这使得文件对象的 :meth:`!tell` "
1100- "方法返回长整数而不是常规整数。 一些代码会减去两个文件偏移量,并尝试使用结果来乘以一个序列或切片一个字符串,但这会引发 "
1101- ":exc:`TypeError`。在2.0中 ,长整数可以用于乘以或切片一个序列,并且会按直觉行为;例如,``3L * 'abc'``' 生成 "
1102- "'abcabcabc',``(0,1,2,3)[2L:4L]`` 生成 (2,3)。 长整数也可以在以前只接受整数的各种上下文中使用,例如文件对象的 "
1103- ":meth:`!seek` 方法,以及 ``%`` 操作符支持的格式(如``%d``、``%i``、``%x``等)。例如,``\" %d\" % "
1098+ "在 Python 2.0 中 ,做了一些工作使得整数和长整数更加可互换。 在 1 .5.2 中,为 Solaris 添加了大文件支持,允许读取大于 2 "
1099+ "GiB 的文件 ;这使得文件对象的 :meth:`!tell` 方法返回长整数而不是常规整数。 "
1100+ "一些代码会减去两个文件偏移量,并尝试使用结果来乘以一个序列或切片一个字符串,但这会引发 :exc:`TypeError`。 在 2.0 "
1101+ "中 ,长整数可以用于乘以或切片一个序列,并且会按直觉行为;例如,``3L * 'abc'``' 生成 "
1102+ "'abcabcabc',``(0,1,2,3)[2L:4L]`` 生成 (2,3)。 长整数也可以在以前只接受整数的各种上下文中使用,例如文件对象的 "
1103+ ":meth:`!seek` 方法,以及 ``%`` 操作符支持的格式(如 ``%d``、``%i``、``%x`` 等)。 例如,``\" %d\" % "
11041104"2L**64`` 将生成字符串 ``18446744073709551616``。"
11051105
11061106#: ../../whatsnew/2.0.rst:708
@@ -1127,11 +1127,11 @@ msgid ""
11271127"represented exactly in binary, so ``repr(8.1)`` is ``'8.0999999999999996'``,"
11281128" while str(8.1) is ``'8.1'``."
11291129msgstr ""
1130- "对浮点数使用 :func:`repr` 现在使用不同的格式化精度 ,而不是 :func:`str`。:func:`repr` 使用 ``%.17g`` "
1131- "格式字符串来调用C的 :func:`!sprintf`,而 :func:`str` 仍然使用 "
1132- "``%.12g``。其效果是,对于某些数字,:func:`repr` 可能比 :func:`str` "
1133- "显示更多的小数位。例如,数字8.1无法精确地用二进制表示, 所以 ``repr(8.1)`` 是 ``'8.0999999999999996'``,而 "
1134- "str(8.1) 是 ``'8.1'``。"
1130+ "对浮点数执行 :func:`repr` 现在会使用不同的格式化精度 ,而不是 :func:`str`。 :func:`repr` 使用 ``%.17g``"
1131+ " 格式字符串来调用 C 的 :func:`!sprintf`,而 :func:`str` 仍然使用 "
1132+ "``%.12g``。其效果是,对于某些数字,:func:`repr` 可能比 :func:`str` 显示更多的小数位。 例如,数字 8.1 "
1133+ "无法精确地用二进制表示, 所以 ``repr(8.1)`` 是 ``'8.0999999999999996'``,而 str(8.1) 是 "
1134+ "``'8.1'``。"
11351135
11361136#: ../../whatsnew/2.0.rst:724
11371137msgid ""
@@ -1155,7 +1155,8 @@ msgid ""
11551155"larger application. If you aren't dealing with Python's C API, you can "
11561156"safely skip this section."
11571157msgstr ""
1158- "有些更改是在底层进行的,仅对编写C扩展模块或在更大的应用中嵌入Python解释器的人明显。如果你不处理Python的C API,可以安全地跳过这一节。"
1158+ "有些更改是在底层进行的,仅对编写 C 扩展模块或在更大的应用中嵌入 Python 解释器的人有价值。 如果你不处理 Python 的 C "
1159+ "API,可以安全地跳过这一节。"
11591160
11601161#: ../../whatsnew/2.0.rst:747
11611162msgid ""
@@ -1165,8 +1166,9 @@ msgid ""
11651166"built for Python 1.5.x due to how Windows DLLs work, so Python will raise an"
11661167" exception and the import will fail."
11671168msgstr ""
1168- " Python C API的版本号已增加,因此为1.5.2编译的C扩展必须重新编译才能与2.0一起工作。在Windows上,由于Windows "
1169- "DLL的工作方式,Python 2.0无法导入为Python 1.5.x构件的第三方扩展,因此Python会引发异常并导致导入失败。"
1169+ " Python C API 的版本号已增加,因此为 1.5.2 编译的 C 扩展必须重新编译才能与 2.0 一起工作。 在 Windows 上,由于 "
1170+ "Windows DLL 的工作方式,Python 2.0 无法导入为 Python 1.5.x 构建的第三方扩展,因此 Python "
1171+ "会引发异常并造成导入失败。"
11701172
11711173#: ../../whatsnew/2.0.rst:753
11721174msgid ""
@@ -1176,9 +1178,10 @@ msgid ""
11761178"remember to write code such as ``if type(obj) == myExtensionClass``, but can"
11771179" use the more natural ``if isinstance(obj, myExtensionClass)``."
11781180msgstr ""
1179- "使用Jim Fulton的ExtensionClass模块的用户将很高兴地发现,已经添加了钩子以支持ExtensionClasses,因此现在支持 "
1180- ":func:`isinstance` 和 :func:`issubclass`。这意味着你不再需要记住编写类似 ``if type(obj) == "
1181- "myExtensionClass`` 这样的代码,而可以使用更自然的 ``if isinstance(obj, myExtensionClass)``。"
1181+ "使用 Jim Fulton 的 ExtensionClass 模块的用户将很高兴地发现,已经添加了钩子以支持 "
1182+ "ExtensionClasses,因此现在支持 :func:`isinstance` 和 :func:`issubclass`。 "
1183+ "这意味着你不再需要记住编写类似 ``if type(obj) == myExtensionClass`` 这样的代码,而可以使用更自然的 ``if "
1184+ "isinstance(obj, myExtensionClass)``。"
11821185
11831186#: ../../whatsnew/2.0.rst:759
11841187msgid ""
@@ -1191,9 +1194,9 @@ msgid ""
11911194"into a single file, :file:`Include/pyport.h`."
11921195msgstr ""
11931196":file:`Python/importdl.c` 文件,它充满了用于支持在许多不同平台上动态加载的 #ifdef,已被 Greg Stein "
1194- "清理和重组。现在 :file:`importdl.c` "
1195- "非常小,平台特定的代码已被移入一组特定的 :file:`Python/dynload_\\ *.c`文件中。另一个清理工作是:Include/ "
1196- "目录中有许多包含各种可移植性黑客的 :file:`my\\ *.h`文件;它们已被合并到一个文件中,即 :file:`Include/pyport.h`。"
1197+ "清理和重组。现在 :file:`importdl.c` 非常小,平台特定的代码已被移入一组特定的 "
1198+ ":file:`Python/dynload_\\ *.c` 文件中。 另一个清理工作是:Include/ 目录中有许多包含各种可移植性修改的 "
1199+ ":file:`my\\ *.h` 文件;它们已被合并到一个文件中,即 :file:`Include/pyport.h`。"
11971200
11981201#: ../../whatsnew/2.0.rst:767
11991202msgid ""
@@ -1205,8 +1208,8 @@ msgid ""
12051208"archives of the 'patches' and 'python-dev' lists at python.org."
12061209msgstr ""
12071210"Vladimir Marangozov 期待已久的 malloc 重组已经完成,使得Python解释器可以轻松使用自定义分配器,而不是C的标准 "
1208- ":c:func:`malloc`。有关文档,请阅读 :file:`Include/pymem.h` 和 "
1209- ":file:`Include/objimpl.h` 中的注释。有关界面敲定期间的详细讨论,请参阅 python.org 上的 'patches' 和 "
1211+ ":c:func:`malloc`。 有关文档,请阅读 :file:`Include/pymem.h` 和 "
1212+ ":file:`Include/objimpl.h` 中的注释。 有关界面敲定期间的详细讨论,请参阅 python.org 上的 'patches' 和 "
12101213"'python-dev' 列表的网络存档。"
12111214
12121215#: ../../whatsnew/2.0.rst:774
@@ -1228,18 +1231,18 @@ msgid ""
12281231"slow as an unthreaded version; with the 2.0 changes, the difference is only "
12291232"10%. These improvements were contributed by Yakov Markovitch."
12301233msgstr ""
1231- " "
1232- "Windows上的线程支持也得到了增强。Windows支持的线程锁在发生争用时才使用内核对象 ;在常见的没有争用的情况下,他们使用简单得多的函数,这些函数快一个数量级。Python"
1233- " 1.5.2在NT上的线程版本比无线程版本慢两倍;有了2.0的改进,差异仅为10%。这些改进由Yakov Markovitch提供 。"
1234+ "Windows 上的线程支持也得到了增强。 Windows "
1235+ "支持的线程锁在发生争用时才使用内核对象 ;在常见的没有争用的情况下,他们使用简单得多的函数,这些函数快一个数量级。Python 1.5.2 在 NT "
1236+ "上的线程版本比无线程版本慢两倍;有了 2.0 的改进,差异仅为 10%。 这些改进由 Yakov Markovitch 提供 。"
12341237
12351238#: ../../whatsnew/2.0.rst:786
12361239msgid ""
12371240"Python 2.0's source now uses only ANSI C prototypes, so compiling Python now"
12381241" requires an ANSI C compiler, and can no longer be done using a compiler "
12391242"that only supports K&R C."
12401243msgstr ""
1241- "Python 2.0的源代码目前只用 ANSI C 原型,所以现在编译Python需要一个 ANSI C 的编译器,而不能通过仅使用支持 K&R C "
1242- "的编译器完成。"
1244+ "Python 2.0 的源代码目前只用 ANSI C 原型,所以现在编译 Python 需要一个 ANSI C 的编译器,而不能通过仅使用支持 K&R "
1245+ "C 的编译器完成。"
12431246
12441247#: ../../whatsnew/2.0.rst:790
12451248msgid ""
@@ -1249,8 +1252,9 @@ msgid ""
12491252"people who are generating Python code would run into this limit. A patch by"
12501253" Charles G. Waldman raises the limit from ``2**16`` to ``2**32``."
12511254msgstr ""
1252- "之前,Python虚拟机在其字节码中使用16位数字,限制了源文件的大小。特别是,这影响了Python源代码中字面量列表和字典的最大大小;偶尔会有人在生成Python代码时遇到这个限制。Charles"
1253- " G. Waldman的补丁将这个限制从 ``2**16`` 提高到 ``2**32``。"
1255+ "之前,Python 虚拟机在其字节码中使用 16 位数字,限制了源文件的大小。 特别是,这影响了 Python "
1256+ "源代码中字面量列表和字典的最大大小;偶尔会有人在生成 Python 代码时遇到这个限制。 Charles G. Waldman 的补丁将这个限制从 "
1257+ "``2**16`` 提高到 ``2**32``。"
12541258
12551259#: ../../whatsnew/2.0.rst:796
12561260msgid ""
@@ -1262,17 +1266,19 @@ msgid ""
12621266"and a third argument for the value to be assigned to the name. This third "
12631267"argument is, respectively, a Python object, a C long, or a C string."
12641268msgstr ""
1265- "添加了三个新的便捷函数,旨在模块初始化时将常量添加到模块的字典中::c:func:`PyModule_AddObject`、:c:func:`PyModule_AddIntConstant`"
1266- " 和 "
1267- ":c:func:`PyModule_AddStringConstant`。每个函数都接收一个模块对象、一个以空字符结尾的包含要添加的名称的C字符串,以及一个第三个参数用于指定要赋值的值。第三个参数分别是一个Python对象、一个C长整型或一个C字符串。"
1269+ "添加了三个新的便捷函数,旨在模块初始化时将常量添加到模块的字典中: "
1270+ ":c:func:`PyModule_AddObject`、:c:func:`PyModule_AddIntConstant` 和 "
1271+ ":c:func:`PyModule_AddStringConstant`。 "
1272+ "每个函数都接收一个模块对象、一个以空字符结尾的包含要添加的名称的C字符串,以及一个第三个参数用于指定要赋值的值。 第三个参数分别是一个 Python "
1273+ "对象、一个 C 长整型或一个 C 字符串。"
12681274
12691275#: ../../whatsnew/2.0.rst:804
12701276msgid ""
12711277"A wrapper API was added for Unix-style signal handlers. "
12721278":c:func:`PyOS_getsig` gets a signal handler and :c:func:`PyOS_setsig` will "
12731279"set a new handler."
12741280msgstr ""
1275- "为Unix风格的信号处理程序添加了一个包装API。 :c:func:`PyOS_getsig` "
1281+ "为 Unix 风格的信号处理程序添加了一个包装API。 :c:func:`PyOS_getsig` "
12761282"获取信号处理程序,:c:func:`PyOS_setsig` 设置新的处理程序。"
12771283
12781284#: ../../whatsnew/2.0.rst:811
@@ -1290,10 +1296,9 @@ msgid ""
12901296"different extension packages, which made administering a Python installation"
12911297" something of a chore."
12921298msgstr ""
1293- "在Python "
1294- "2.0之前,安装模块是一件繁琐的事情——没有办法自动确定Python的安装位置,或者用于扩展模块的编译器选项。软件作者不得不经历一套繁琐的程序来编辑Make"
1295- " file和配置文件,这些只在Unix上真正有效,而Windows和Mac "
1296- "OS不受支持。Python用户面对不同扩展包之间大相径庭的安装说明,这使得管理Python成了一件麻烦事。"
1299+ "在 Python 2.0 之前,安装模块是一件繁琐的事情 —— 没有办法自动确定 Python 的安装位置,或者用于扩展模块的编译器选项。 "
1300+ "软件作者不得不经历一套繁琐的程序来编辑 Makefile 和配置文件,这些只在 Unix 上真正有效,而 Windows 和 Mac OS 不受支持。 "
1301+ "Python 用户面对不同扩展包之间大相径庭的安装说明,这使得管理 Python 成了一件麻烦事。"
12971302
12981303#: ../../whatsnew/2.0.rst:821
12991304msgid ""
@@ -1310,9 +1315,11 @@ msgid ""
13101315"separating the build from the install, building or installing in non-default"
13111316" directories, and more."
13121317msgstr ""
1313- "由Greg Ward领导的SIG创建了``distutils``,一个使包安装更加容易的系统。它们构成了 distutils 包,这是Python标准库的新部分。在最佳情况下,从源代码安装Python模块只需要以下几个步骤:首先解压缩tarball或zip归档文件,然后运行 ``python setup.py install``。平台会自动检测,编译器会被识别,C扩展模块会被编译,并且分发包会安装到适当的目录中。\n"
1314- "\n"
1315- "可选的命令行参数提供了对安装过程的更多控制,distutils 包提供了许多地方来覆盖默认设置——将构建与安装分开,在非默认目录中构建或安装,等等。"
1318+ "由 Greg Ward 领导的 SIG 创建了 ``distutils``,一个使包安装更加容易的系统。它们构成了 distutils 包,这是 "
1319+ "Python 标准库的新部分。 在最佳情况下,从源代码安装 Python 模块只需要以下几个步骤:首先解压缩 tarball 或 zip "
1320+ "归档文件,然后运行 ``python setup.py install``。 平台会自动检测,编译器会被识别,C "
1321+ "扩展模块会被编译,并且分发包会安装到适当的目录中。 可选的命令行参数提供了对安装过程的更多控制,distutils 包提供了许多地方来覆盖默认设置 ——"
1322+ " 将构建与安装分开,在非默认目录中构建或安装,等等。"
13161323
13171324#: ../../whatsnew/2.0.rst:833
13181325msgid ""
@@ -1413,22 +1420,23 @@ msgid ""
14131420"class can get very complicated if you're trying to modify the document "
14141421"structure in some elaborate way."
14151422msgstr ""
1416- "事件驱动方法的优点是整个文档不必同时驻留在内存中,这在处理非常大的文档时尤其重要。然而,如果你试图以某种复杂的方式修改文档结构,编写SAX处理程序类可能会变得非常复杂。"
1423+ "事件驱动方法的优点是整个文档不必同时驻留在内存中,这在处理非常大的文档时尤其重要。然而,如果你试图以某种复杂的方式修改文档结构,编写 SAX "
1424+ "处理程序类可能会变得非常复杂。"
14171425
14181426#: ../../whatsnew/2.0.rst:912
14191427msgid ""
14201428"For example, this little example program defines a handler that prints a "
14211429"message for every starting and ending tag, and then parses the file "
14221430":file:`hamlet.xml` using it::"
1423- msgstr "例如,这个小示例程序定义了一个处理器,它为每个开始和结束标签打印一条消息,然后使用它来解析文件 :file:`hamlet.xml`: "
1431+ msgstr "例如,这个小示例程序定义了一个处理器,它为每个开始和结束标签打印一条消息,然后使用它来解析文件 :file:`hamlet.xml`:: "
14241432
14251433#: ../../whatsnew/2.0.rst:935
14261434msgid ""
14271435"For more information, consult the Python documentation, or the XML HOWTO at "
14281436"https://pyxml.sourceforge.net/topics/howto/xml-howto.html."
14291437msgstr ""
1430- "欲了解更多信息,请查阅Python文档,或在https ://pyxml.sourceforge.net/topics/howto/xml-"
1431- "howto.html查阅XML HOWTO。"
1438+ "欲了解更多信息,请查阅 Python 文档,或 https ://pyxml.sourceforge.net/topics/howto/xml-"
1439+ "howto.html 上的 XML HOWTO。"
14321440
14331441#: ../../whatsnew/2.0.rst:940
14341442msgid "DOM Support"
@@ -1471,7 +1479,7 @@ msgid ""
14711479" tree::"
14721480msgstr ""
14731481"Python 附带的 DOM 实现在 :mod:`xml.dom.minidom` 模块中。它是一个轻量级的 Level 1 DOM 实现,支持 XML"
1474- " 命名空间。提供了 :func:`!parse` 和 :func:`!parseString` 便捷函数用于生成 DOM 树: "
1482+ " 命名空间。提供了 :func:`!parse` 和 :func:`!parseString` 便捷函数用于生成 DOM 树:: "
14751483
14761484#: ../../whatsnew/2.0.rst:964
14771485msgid ""
@@ -1488,18 +1496,19 @@ msgstr ""
14881496"类如:class:`!Element` 和 :class:`Text`一样,都是:class:`!Node` 基类的子类。因此,DOM "
14891497"树中的所有节点都支持某些通用方法,例如 :meth:`!toxml` 方法,该方法返回一个包含节点及其子节点的 XML "
14901498"表示的字符串。每个类也有自己的特定方法;例如,:class:`!Element` 和 :class:`!Document` "
1491- "实例有一个方法可以找到具有给定标签名的所有子元素。继续前面2行代码的例子 :"
1499+ "实例有一个方法可以找到具有给定标签名的所有子元素。继续前面 2 行代码的例子 :"
14921500
14931501#: ../../whatsnew/2.0.rst:977
14941502msgid "For the *Hamlet* XML file, the above few lines output::"
1495- msgstr "对于*Hamlet*XML文件 ,上面几行代码输出: "
1503+ msgstr "对于 *Hamlet* XML 文件 ,上面几行代码输出:: "
14961504
14971505#: ../../whatsnew/2.0.rst:982
14981506msgid ""
14991507"The root element of the document is available as ``doc.documentElement``, "
15001508"and its children can be easily modified by deleting, adding, or removing "
15011509"nodes::"
1502- msgstr "文件的根元素可以通过``doc.documentElement``访问,并且可以通过删除、添加或一处节点来听松修改节点来轻松修改其子元素:"
1510+ msgstr ""
1511+ "文件的根元素可以通过 ``doc.documentElement`` 访问,并且可以通过删除、添加或一处节点来听松修改节点来轻松修改其子元素::"
15031512
15041513#: ../../whatsnew/2.0.rst:997
15051514msgid ""
0 commit comments