Appendix. New Features and Changes in Python 3.7 Through 3.11

The following tables enumerate language and standard library changes in Python versions 3.7 through 3.11 that are most likely to be found in Python code. Use these tables to plan your upgrade strategy, as constrained by your exposure to breaking changes in your codebase.

Settings for Online Reading

To better view these tables you may need to reduce the font size in the settings of your device or content viewer.

The following types of changes are considered to be “breaking” and are marked with a ! symbol in the last column:

  • Introduces new keywords or built-ins (which may clash with names used in existing Python source code)

  • Removes a method from a stdlib module or built-in type

  • Changes a built-in or stdlib method signature in a way that is not backward-compatible (such as removing a parameter, or renaming a named parameter)

New warnings (including DeprecatedWarning) are also shown as “breaking,” but marked with a * symbol in the last column.

Also see the table of proposed deprecations and removals from the standard library (“dead batteries”) in PEP 594, which lists modules that are slated for deprecation or removal, the versions in which these changes are scheduled to be made (beginning with Python 3.12), and recommended replacements.

Python 3.7

The following table summarizes changes in Python version 3.7. For further details, see “What’s New in Python 3.7” in the online docs.

Python 3.7 Added Deprecated ...

Get Python in a Nutshell, 4th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.