New Features and Fixes in Python 3.11

In this tutorial, we will learn about the new exiting features of the Python 3.11. Python community is working toward to making Python more better and improves its performance. Now, they have come with the new exiting and helpful features and properties in the newer version of Python programming language.

Python 3.11 is just released and most of us don't know about its new fixes. We will list down the most significant features of the Python and understand how they are important for the Python developer. The latest version of the Python is faster and more user-friendly. After seventeen months of development, its now ready for production.

Enhanced Error Information

Detailed error information helps us to debugg the program more quicker. Thanks to the Python 3.11, which comes with the detailed error information. However, Python 3.10 already had the better error reporting. Now, Python 3.11 expands on that by providing detailed feedback about what specific part of given expression caused an error. Let's understand the following example.

Example -

Python 3.10 will return the following output -

Output:

Traceback (most recent call last):
  File "<string>", line 3, in <module>
ZeroDivisionError: division by zero

While 3.11 indicates which part is responsible for the error.

Output -

Traceback (most recent call last):
  File "<string>", line 3, in <module>
    result = (x / y ) * (a / b )
              ~~~~^^^
ZeroDivisionError: division by zero

We can clearly see the differences between the both outputs. It has the error locator ~~~~^^^, which shows that x or y being is zero. we can identify which part is responsible for the error. The annotation will be more powerful when our code becomes complex.

Speed Improvement

There are many performance improvement happened in Python 3.11 but the most advance improvement is the specializing adaptive interpreter. Since an object's type rarely changes, the intepreter now attempts to analyze running code and replace general bytecodes with type-specific ones. In the Python 3.11 version, function calls now use the less memory and are more efficiently designed. And recursive call is more efficient than in previous versions. The Python intepreter also starts faster, and core modules needed for the Python runtime are stored and loaded more efficiently.

According to the official documentation of the Python, Python 3.11 runs 1.25 times faster than Python 3.10. However, speed improvement is an aggregate measure which means something run faster and some thing run bit faster or same. But the best thing is that, they are open source. We don't need to pay the single penny. We dont need to make any code changes for Python programs to take advantages of Python 3.11 speedups.

Exceptions Improvements

Exceptions, Python's error-handling mechanism, have received many new features in Python 3.11.

  • Multiple exceptions can be raised and handled at once with the new except* syntax and the new ExceptionGroup exception type. This allows the elegant handling of issues where multiple errors can be raised together, such as when dealing with asynchronous or concurrent methods or when dealing with multiple failures when retrying an operation.
  • Zero-cost Exception - This feature includes exception no have cose unless they are actually raised. It means the try/except is more faster and use less memory.
  • The new version catch an exception 10% faster.
  • Exceptions can be enriched with contextual notes, separate from the text of the exception itself.

TOML read-only support in stdlib

Python comes with the TOML or Tom's Obvious Minimal Langugae, as a configuration format but doesnt expose the ability to read TOML-format files as a standard library module. Python 3.11 provides tomlib to address that problem.

Removing 'dead batteries' from the Standard Library

Python 3.11 removed many dead batteries or module that are obsolete or unmaintained from the Python standard library. Python has also marked many library to removed; they will be removed entirely in Python 3.13.

Typing Improvements

Python provides the type-hinting feature that allows to mage the large codebase easy and analyze, and have increased significantly with each revision since Python 3.5. Python 3.11 brings in several new type-hinting additions.


Next TopicPython Arrows




Latest Courses