That is not the central and essential change. It&#x27;s just a style cleanup that they did while they were breaking compatibility anyway.<p>The big change was string&#x2F;byte-array typing, which was a mess in Python 2 and was cleaned up in Python 3. That&#x27;s one of those things that, when changed, inherently breaks old code in ways that, like wizards, are subtle and quick to anger.<p>Also changing lots of sequence functions like range() to return iterators instead of lists, but those are mostly pure performance wins that don&#x27;t break compatibility except for some very specific use cases.