DEV Community

x
x

Posted on

8 2

What's new in Python 3.10

Python 3.10 will be here later this year and I wanted to go over some of the new features that will make our lives a little easier.

Multi line context managers.

This allows you to have multiple context managers in one with statement. Instead of nesting context managers and the associated complexity, you can open everything at once in one expression. One use case would be having multiple files open. Now all the needed files can be opened and closed in the same context without nesting.

with (open('source_a.txt') as source_a,
      open('source_b.txt') as source_b,
      open('out.txt', 'w') as out):
    <perform some logic to use the contents of all the files>
Enter fullscreen mode Exit fullscreen mode

Error messages point to the fault and not to where the interpreter failed

Error messages have been improved so that if you are missing a bracket, the error handler will highlight the portion of code it thinks is missing the bracket instead of the first assignment that failed due to a missing bracket.

Previous implementations would report where the interpreter quit working, which was after the part of code that was missing the bracket. This should make troubleshooting code much easier.

Structural pattern matching, a.k.a. switch statements

Python is getting a feature that seems like a switch statement and can be used that way, but is actually more flexible that simple equality checks.

From the python docs "Patterns consist of sequences, mappings, primitive data types as well as class instances." This means that you can match on a broad array of criteria and can compare class instances against one another based on how the instances were created. You can also use array methods, like map and match on the output from that.

This will be a massive improvement over using imperative if clauses. This more declarative approach is easier to read and can be implemented in complex cases easier.

array

The index() method of the builtin array is getting start and stop parameters. This will make it work more like Javascript.

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay