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.
Python 3.8.0b1 – This release is the 1st of 4 planned beta release previews. Beta release previews are intended to give the wider community the opportunity to test new features & bug fixes & to prepare their projects to support the new feature release. https://t.co/IzG14vfKyo
— Python Software (@ThePSF) June 9, 2019
These are some of the features that you will see in the upcoming Python 3.8 version:
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.
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.