杜逸先 Python3 的新特性和改进Python3的新特性和改进 杭州美登科技 杜逸先 目录 CONTENTS Python的现状 Python3的新特性和改进 迁移到Python3 问答环节 1 Python的现状 Python的现状 Python2.7将于2020年1月1日停止维护 Python的现状 Python2.7将于2020年1月1日停止维护 主流Python包陆续终止对Python2的支持 Python的现状 Python3的新特性和改进 ——重要变化 Python3的新特性和改进——重要变化 Text Vs. Data Instead Of Unicode Vs. 8-bit 内容 类型 混合使用 Python3 Text Vs. Data str Vs. bytes ✖ Python2 Unicode Vs. 8-bit unicode Vs. str ✔ Python3的新特性和改进——重要变化 Python2 Python3的新特性和改进——重要变化 Python3 Python3的新特性和改进——重要变化 Python3的str和bytes不能混用! Python3的新特性和改进——重要变化 求一段文本的MD5:Python2 Python3的新特性和改进——重要变化 求一段文本的MD5:Python3 Python3的新特性和改进——重要变化 Views And0 码力 | 78 页 | 2.28 MB | 1 年前3
Python 标准库参考指南 3.7.13 在调用外围有效的 future 语句将被忽略。 7 The Python Library Reference, 发布 3.7.13 Future 语句使用比特位来指定,多个语句可以通过按位或来指定。具体特性的比特位可以通 过__future__ 模块中的 _Feature 类的实例的 compiler_flag 属性来获得。 optimize 实参指定编译器的优化级别;默认值 -1 选择与解释器的 -O 迭代。除了迭代 器协议的实现,特定类型的其他性质对迭代操作来说都不重要。 一旦迭代器的__next__() 方法引发了StopIteration,它必须一直对后续调用引发同样的异常。不遵循 此行为特性的实现将无法正常使用。 34 Chapter 4. 内置类型 The Python Library Reference, 发布 3.7.13 4.5.1 生成器类型 Python 的generator start, stop 和 step 值,并会根据需要计算具体单项或子范围的 值)。 range 对象实现了collections.abc.Sequence ABC,提供如包含检测、元素索引查找、切片等特性,并 支持负索引 (参见序列类型 --- list, tuple, range): >>> r = range(0, 20, 2) >>> r range(0, 20, 2) >>> 11 in r0 码力 | 1961 页 | 9.14 MB | 10 月前3
Python 标准库参考指南 3.6.15 语句会被使用。如果 dont_inherit 为一个非零整数,则只使用 flags 参数–在调用外围有效的 future 语句将被忽略。 Future 语句使用比特位来指定,多个语句可以通过按位或来指定。具体特性的比特位可以通 过__future__ 模块中的 _Feature 类的实例的 compiler_flag 属性来获得。 optimize 实参指定编译器的优化级别;默认值 -1 选择与解释器的 -O 迭代。除了迭代 器协议的实现,特定类型的其他性质对迭代操作来说都不重要。 一旦迭代器的__next__() 方法引发了StopIteration,它必须一直对后续调用引发同样的异常。不遵循 此行为特性的实现将无法正常使用。 34 Chapter 4. 内置类型 The Python Library Reference, 发布 3.6.15 4.5.1 生成器类型 Python 的generator start, stop 和 step 值,并会根据需要计算具体单项或子范围的 值)。 range 对象实现了collections.abc.Sequence ABC,提供如包含检测、元素索引查找、切片等特性,并 支持负索引 (参见序列类型—list, tuple, range): >>> r = range(0, 20, 2) >>> r range(0, 20, 2) >>> 11 in r False0 码力 | 1886 页 | 8.95 MB | 10 月前3
Python 标准库参考指南 3.6.15 语句会被使用。如果 dont_inherit 为一个非零整数,则只使用 flags 参数–在调用外围有效的 future 语句将被忽略。 Future 语句使用比特位来指定,多个语句可以通过按位或来指定。具体特性的比特位可以通 过__future__ 模块中的 _Feature 类的实例的 compiler_flag 属性来获得。 optimize 实参指定编译器的优化级别;默认值 -1 选择与解释器的 -O 迭代。除了迭代 器协议的实现,特定类型的其他性质对迭代操作来说都不重要。 一旦迭代器的__next__() 方法引发了StopIteration,它必须一直对后续调用引发同样的异常。不遵循 此行为特性的实现将无法正常使用。 34 Chapter 4. 内置类型 The Python Library Reference, 发布 3.6.15 4.5.1 生成器类型 Python 的generator start, stop 和 step 值,并会根据需要计算具体单项或子范围的 值)。 range 对象实现了collections.abc.Sequence ABC,提供如包含检测、元素索引查找、切片等特性,并 支持负索引 (参见序列类型—list, tuple, range): >>> r = range(0, 20, 2) >>> r range(0, 20, 2) >>> 11 in r False0 码力 | 1886 页 | 8.95 MB | 10 月前3
Python 标准库参考指南 3.7.13 dont_inherit 为一个非零整数,则只使用 flags 参数 -- 在调用外围有效的 future 语句将被忽 略。 Future 语句使用比特位来指定,多个语句可以通过按位或来指定。具体特性的比特位可以通 过__future__ 模块中的 _Feature 类的实例的 compiler_flag 属性来获得。 optimize 实参指定编译器的优化级别;默认值 -1 选择与解释器的 -O 迭代。除了 迭代器协议的实现,特定类型的其他性质对迭代操作来说都不重要。 一旦迭代器的__next__() 方法引发了StopIteration,它必须一直对后续调用引发同样的异常。不 遵循此行为特性的实现将无法正常使用。 4.5.1 生成器类型 Python 的generator 提供了一种实现迭代器协议的便捷方式。如果容器对象 __iter__() 方法被实现为一 个生成器,它将自动返回 不符合值的限制条件,则该 range 对象为空。range 对象确实支持负索引,但是会将其解 读为从正索引所确定的序列的末尾开始索引。 元素绝对值大于sys.maxsize 的 range 对象是被允许的,但某些特性 (例如len()) 可能引 发OverflowError。 一些 range 对象的例子: >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]0 码力 | 1846 页 | 9.09 MB | 10 月前3
Python 标准库参考指南 3.8.20 语句会被使用。如果 dont_inherit 为一个非零整数,则只使用 flags 参数 -- 在调用外围有效的 future 语句将被忽略。 Future 语句使用比特位来指定,多个语句可以通过按位或来指定。具体特性的比特位可以通 过__future__ 模块中的 _Feature 类的实例的 compiler_flag 属性来获得。 可选参数 flags 还会控制是否允许编译的源码中包含最高层级 await 迭代。除了迭代 器协议的实现,特定类型的其他性质对迭代操作来说都不重要。 一旦迭代器的__next__() 方法引发了StopIteration,它必须一直对后续调用引发同样的异常。不遵循 此行为特性的实现将无法正常使用。 36 Chapter 4. 内置类型 The Python Library Reference, 发布 3.8.20 4.5.1 生成器类型 Python 的generator start, stop 和 step 值,并会根据需要计算具体单项或子范围的 值)。 range 对象实现了collections.abc.Sequence ABC,提供如包含检测、元素索引查找、切片等特性,并 支持负索引 (参见序列类型 --- list, tuple, range): >>> r = range(0, 20, 2) >>> r range(0, 20, 2) >>> 11 in r0 码力 | 2052 页 | 9.74 MB | 10 月前3
Python 标准库参考指南 3.8.20 dont_inherit 为一个非零整数,则只使用 flags 参数 -- 在调用外围有效的 future 语句将被忽 略。 Future 语句使用比特位来指定,多个语句可以通过按位或来指定。具体特性的比特位可以通 过__future__ 模块中的 _Feature 类的实例的 compiler_flag 属性来获得。 可选参数 flags 还会控制是否允许编译的源码中包含最高层级 await 迭代。除了 迭代器协议的实现,特定类型的其他性质对迭代操作来说都不重要。 一旦迭代器的__next__() 方法引发了StopIteration,它必须一直对后续调用引发同样的异常。不 遵循此行为特性的实现将无法正常使用。 4.5.1 生成器类型 Python 的generator 提供了一种实现迭代器协议的便捷方式。如果容器对象 __iter__() 方法被实现为一 个生成器,它将自动返回 不符合值的限制条件,则该 range 对象为空。range 对象确实支持负索引,但是会将其解 读为从正索引所确定的序列的末尾开始索引。 元素绝对值大于sys.maxsize 的 range 对象是被允许的,但某些特性 (例如len()) 可能引 发OverflowError。 一些 range 对象的例子: >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]0 码力 | 1927 页 | 9.69 MB | 10 月前3
Python 标准库参考指南 3.8.20 dont_inherit 为一个非零整数,则只使用 flags 参数 -- 在调用外围有效的 future 语句将被忽 略。 Future 语句使用比特位来指定,多个语句可以通过按位或来指定。具体特性的比特位可以通 过__future__ 模块中的 _Feature 类的实例的 compiler_flag 属性来获得。 可选参数 flags 还会控制是否允许编译的源码中包含最高层级 await 迭代。除了 迭代器协议的实现,特定类型的其他性质对迭代操作来说都不重要。 一旦迭代器的__next__() 方法引发了StopIteration,它必须一直对后续调用引发同样的异常。不 遵循此行为特性的实现将无法正常使用。 4.5.1 生成器类型 Python 的generator 提供了一种实现迭代器协议的便捷方式。如果容器对象 __iter__() 方法被实现为一 个生成器,它将自动返回 不符合值的限制条件,则该 range 对象为空。range 对象确实支持负索引,但是会将其解 读为从正索引所确定的序列的末尾开始索引。 元素绝对值大于sys.maxsize 的 range 对象是被允许的,但某些特性 (例如len()) 可能引 发OverflowError。 一些 range 对象的例子: >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]0 码力 | 1927 页 | 9.69 MB | 10 月前3
Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1963 35.12.8 相关特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1963 35.12 'single'。(在最后一种情况下,如果表达式 执行结果不是 None 将会被打印出来。) 可选参数 flags 和 dont_inherit 控制应当激活哪个编译器选项 以及应当允许哪个 future 特性。如果两者 都未提供 (或都为零) 则代码会应用与调用compile() 的代码相同的旗标来编译。如果给出了 flags 参 数而未给出 dont_inherit (或者为零) 则会在无论如何都将被使用的旗标之外还会额外使用 语句。如果 dont_inherit 为非零整数,则只使用 flags 参数 -- 外围代码中的旗标 (future 特性和编译器选项) 会被忽略。 编译器选项和 future 语句是由比特位来指明的。比特位可以通过一起按位 OR 来指明多个选项。指明特 定 future 特性所需的比特位可以在__future__ 模块的 _Feature 实例的 compiler_flag 属性中 找到。编译器旗标0 码力 | 2207 页 | 10.45 MB | 10 月前3
Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1838 35.12.8 相关特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1839 35.12.9 GUI The Python Library Reference, 发布 3.10.15 可选参数 flags 和 dont_inherit 控制应当激活哪个编译器选项 以及应当允许哪个 future 特性。如果 两者都未提供 (或都为零) 则代码会应用与调用compile() 的代码相同的旗标来编译。如果给出 了 flags 参数而未给出 dont_inherit (或者为零) 则会在无论如何都将被使用的旗标之外还会额外使用 语句。如果 dont_inherit 为非零整数,则只使用 flags 参数 -- 外围代码中的旗标 (future 特性和编译器选项) 会被忽略。 编译器选项和 future 语句是由比特位来指明的。比特位可以通过一起按位 OR 来指明多个选项。指 明特定 future 特性所需的比特位可以在__future__ 模块的 _Feature 实例的 compiler_flag 属性中找到。编译器旗标0 码力 | 2072 页 | 10.39 MB | 10 月前3
共 88 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9













