Rodrigo Girão Serrão: DX improvements in Python 3.15

Wait 5 sec.

Learn about the top 3 developer experience improvements from Python 3.15This article covers the top 3 improvements made to the developer experience of Python 3.15 users:improved error messagesmore coloursdefault UTF-8 encoding15 days of Python 3.15To celebrate the release of Python 3.15, over the next 15 business days I'll be writing about a new 3.15 feature every day.Explained clearly and with examples so you don't have to sift through the changelog.Subscribe to receive this free email series: Enroll for free 🐍🚀 If you want, you can also check the schedule of the upcoming emails.Improved error messagesOver the past few years, lots of effort has been poured into improving Python's error messages.Python 3.15 is no exception, as it introduces three improved types of error messages.Errors in accessing nested attributesIf you get an AttributeError exception when accessing a name of an object, but that object has another member that has the correct name, Python suggests it:class Inner: def __init__(self): self.value = 42class Outer: def __init__(self): self.inner = Inner()o = Outer()o.value# AttributeError: 'Outer' object has no attribute 'value'.# Did you mean '.inner.value' instead of '.value'?Incidentally, while Python 3.15 was in alpha, I found and reported a bug with this feature that was fixed in just a couple of hours!Checking methods from popular programming languagesIf you get an AttributeError when trying to access a method from a built-in type, Python starts by checking if that's a typo.For example, list.pp will ask if you meant to type list.pop.Now, if there's no “obvious” typo, Python will also check a static table of common...