MITB Banner

Python 3.10 And Its New Features

Here’s all the major features of Python’s latest version -- Python 3.10.
Share
Python 3.10

High-level, general-purpose programming language Python emphasises code readability with the use of indentation. According to the TIOBE Index for October 2021, Python is the most popular programming language in the global developers’ community.

Python released its latest upgrade, Python 3.10, on October 04, 2021, soon after the 30th anniversary of the programming language. While there are several new features in the latest in-development version, the most significant upgrade has to be the language syntax, since async. 

Today, we list the major features of Python 3.10.

List of new features

  • New syntax features 
  • PEP 634: Structural Pattern Matching- Specification 
  • PEP 635: Structural Pattern Matching- Motivation and Rationale 
  • PEP 636: Structural Pattern Matching- Tutorial 
  • Bpo-12782: Parenthesized context managers (This feature allows formatting a long collection of context managers in multiple lines).
  • New feature in the standard library
  • PEP 626 – Add Optional Length – Checking to zip 
  • Interpreter improvements
  • PEP 626 – precise line numbers for debugging and other tools. 
  • New typing features 
  • PEP 604 – Allowing writing union types as X | Y 
  • PEP 613 – Explicit type aliases 
  • PEP 612 – Parameter specification variables 
  • Important deprecations, removals or restrictions: 
  • PEP 644 – Require OpenSSL 1.1.1 or newer
  • PEP 632 – Deprecate distutils module 
  • PEP 623 – Deprecate and prepare for the removal of the wstr member in PyUnicodeObject 
  • PEP 624 – Remove Py_UNICODE encoder APIs
  • PEP 597 – Add optional EncodingWarning 

Structural Pattern Matching 

Structural pattern matching (PEP 634) in Python allows one to match variables against patterns of values — an object with a certain property set to a certain value. This update expands the range of possibilities and is going to benefit those who deal intensively with data structures. That is, it makes it possible to write code quickly encompassing a variety of scenarios. 

Structural pattern matching has been added in the form of two statements — ‘match statement’ and ‘case statements’ of patterns with associated actions. Patterns for comparison can consist of sequences — lists and types; mapping structures — dictionaries; primitive data types or class instances. The syntax around the two statements — ‘match’ and ‘case’ expanded, can now be used to extract information from complex data types, branch the structure of data or apply other specific actions to varied data forms.

The generic syntax of pattern matching is as follows: 

Source: Python.org

Thus, pattern matching operated by: 

  • Using data with type and shape (the subject) 
  • Evaluating the subject in the match statement 
  • Comparing the subject with each pattern in case statement from top to bottom until a match is confirmed 
  • Executing action associated with a pattern of the confirmed match 
  • If the exact match is not confirmed, a wildcard when provided, can be used as the matching case. 

Detecting Errors

The development team at Python has improved its debugging capabilities and clarity of error messages

Earlier, while programming in Python, developers would get vague messages like:

‘SyntaxError: unexpected EOF while parsing’ 

Source: Python.org

However, in version 3.10, the interpreter will now provide more precise and specific information while parsing the code. For instance, when a programmer misses using ‘:’ before blocks, the interpreter will display the following message: 

SyntaxError: expected ‘:’ 

Source: Python.org

Additionally, the latest version simplifies the static type system. That is, in order to simplify coding, without losing type information, with the help of ‘float | int’ substitute. Type hinting will allow programmers to ‘list’ instead of Python 3.9’s ‘typing.List’ use. 

Parameter Specification Variables 

Developers have added two new options to improve the information provided to static type checkers for ‘Callable’ to the ‘typing’ module. The first is the parameter specification variable which is used to forward the parameter types of one callable to another, a pattern usually found in higher-order functions and decorators. 

The second one, the ‘Concatenate’ operator, is used in conjunction with parameter specification variables to annotate a higher-order callable which adds or removes parameters of another callable. 

To get a detailed overview of the new features in Python 3.10 as compared to 3.9, check here. To check out free Python courses for data scientists in 2021, click here

PS: The story was written using a keyboard.
Share
Picture of Debolina Biswas

Debolina Biswas

After diving deep into the Indian startup ecosystem, Debolina is now a Technology Journalist. When not writing, she is found reading or playing with paint brushes and palette knives. She can be reached at debolina.biswas@analyticsindiamag.com
Related Posts

CORPORATE TRAINING PROGRAMS ON GENERATIVE AI

Generative AI Skilling for Enterprises

Our customized corporate training program on Generative AI provides a unique opportunity to empower, retain, and advance your talent.

Upcoming Large format Conference

May 30 and 31, 2024 | 📍 Bangalore, India

Download the easiest way to
stay informed

Subscribe to The Belamy: Our Weekly Newsletter

Biggest AI stories, delivered to your inbox every week.

AI Courses & Careers

Become a Certified Generative AI Engineer

AI Forum for India

Our Discord Community for AI Ecosystem, In collaboration with NVIDIA. 

Flagship Events

Rising 2024 | DE&I in Tech Summit

April 4 and 5, 2024 | 📍 Hilton Convention Center, Manyata Tech Park, Bangalore

MachineCon GCC Summit 2024

June 28 2024 | 📍Bangalore, India

MachineCon USA 2024

26 July 2024 | 583 Park Avenue, New York

Cypher India 2024

September 25-27, 2024 | 📍Bangalore, India

Cypher USA 2024

Nov 21-22 2024 | 📍Santa Clara Convention Center, California, USA

Data Engineering Summit 2024

May 30 and 31, 2024 | 📍 Bangalore, India