2 min read

Last week, the team behind Python announced the release of Python 3.8.0b1, which is the first out of the four planned beta release previews of Python 3.8. This release marks the beginning of the beta phase where you can test new features and make your applications ready for the new release.

These are some of the features that you will see in the upcoming Python 3.8 version:

Assignment expressions

Assignment expressions were proposed in PEP 572, which was accepted after an extensive discussion among the Python developers. This feature introduces a new operator (:=) with which you will be able to assign variables within an expression.


Positional-only arguments

In Python, you can pass an argument to a function by position, keyword, or both. API designers may sometimes want to restrict passing the arguments by position only. To easily implement this, Python 3.8 will come with a new marker (/) to indicate that the arguments to its left are positional only. This is similar to * that indicates the arguments to its right are keyword only.

Python Initialization Configuration

Python is highly configurable, but the configurations are scattered all around the code. This version introduces new functions and structures to the Python Initialization C API to provide Python developers a “straightforward and reliable way” to configure Python.

The Vectorcall protocol for CPython

The calling convention impacts the flexibility and performance of your code considerably. To optimize the calling of objects, this release introduces Vectorcall protocol and a calling convention that is already being used internally for Python and built-in functions.

Runtime audit hooks

Python 3.8 will come with two new APIs: Audit Hook and Verified Open Hook to give you insights into a running Python application. These will facilitate both application developers and system administrators to integrate Python into their existing monitoring systems.

As this is a beta release, developers should refrain from using it in production environments. The next beta release is currently planned to release on July 1st.

To know more about Python 3.8.0b1, check out the official announcement.

Read Next

Which Python framework is best for building RESTful APIs? Django or Flask?

PyCon 2019 highlights: Python Steering Council discusses the changes in the current Python governance structure

Python 3.8 alpha 2 is now available for testing