Exploring the New Features of Python 3.13

The Real Python Podcast

Python 3.13 is here! Our regular guests, Geir Arne Hjelle and Christopher Trudeau, return to discuss the new version. This year, Geir Arne coordinated a series of preview articles with members of the Real Python team and a showcase tutorial, “Python 3.13: Cool New Features for You to Try.” Christopher’s video course “What’s New in Python 3.13” covers the topics from the article and shows the new features in action.

Geir Arne and Christopher dug into the release to create code examples of the new features for the tutorial and course. We look at the options for disabling the Global Interpreter Lock (GIL) and enabling the Just-in-Time (JIT) compiler. We also discuss the new interactive interpreter, better error messages, multiple improvements to static typing, and additional performance improvements.

We share our thoughts on the updates and offer advice about incorporating them into your projects. We also discuss when you should start running Python 3.13.

This is episode is sponsored by Nvidia.

Course Spotlight: What’s New in Python 3.13

In this video course, you’ll learn about the new features in Python 3.13. You’ll take a tour of the new REPL and error messages and see how you can try out the experimental free threading and JIT versions of Python 3.13 yourself.

Topics:

  • 00:00:00 – Introduction
  • 00:03:14 – A Modern REPL
  • 00:08:54 – Making the Global Interpreter Lock Optional in CPython
  • 00:11:33 – JIT Compilation
  • 00:15:48 – More improved error messages
  • 00:18:30 – Sponsor: NVIDIA
  • 00:19:13 – Marking deprecations using the type system
  • 00:21:09 – Type Defaults for Type Parameters
  • 00:22:44 – Narrowing types with TypeIs
  • 00:25:24 – TypedDict: Read-only items
  • 00:27:50 – Random command line interface
  • 00:29:54 – New copy.replace()
  • 00:33:43 – Video Course Spotlight
  • 00:34:55 – Pathlib and globbing
  • 00:39:33 – Stripping docstrings
  • 00:41:28 – Import improvements
  • 00:41:56 – Dynamically import non-code files
  • 00:42:23 – Adding iOS as a supported platform
  • 00:43:32 – More consistency with local namespace
  • 00:44:30 – Support for deprecation in argparse
  • 00:45:00 – Better entry points for breakpoint or set_trace
  • 00:46:08 – Removing dead batteries
  • 00:47:43 – When to upgrade to 3.13?
  • 00:53:19 – core.py podcast
  • 00:54:14 – Thanks and goodbye

Show Links:

  • Python 3.13: Cool New Features for You to Try
  • What’s New in Python 3.13
  • Python 3.13 Preview: A Modern REPL
  • Python 3.13 Preview: Free Threading and a JIT Compiler
  • What’s New In Python 3.13 — Python 3.13.0rc2 documentation
  • PEP 703 – Making the Global Interpreter Lock Optional in CPython
  • PEP 744 – JIT Compilation
  • PEP 702 – Marking deprecations using the type system
  • PEP 696 – Type Defaults for Type Parameters
  • PEP 742 – Narrowing types with TypeIs
  • PEP 705 – TypedDict: Read-only items
  • PEP 730 – Adding iOS as a supported plat

To listen to explicit episodes, sign in.

Stay up to date with this show

Sign in or sign up to follow shows, save episodes and get the latest updates.

Select a country or region

Africa, Middle East, and India

Asia Pacific

Europe

Latin America and the Caribbean

The United States and Canada