After a few release candidates, Python 3.3 is ready to be used for real. The biggest change is the new yield from expression, there are also some new library modules and a range of small improvements.
Python is slowly working it's way away from the 2.x series and version 3.3 is another good reason to forget the past.
The new yield from expression is something that not all Python programmers will need to use. In fact, not many will need to master the yield from expression at all.
Yield is something you need to implement your own iterators, i.e. to generate a series of entities. Yield from allows you delegate the iteration to another iterator without loss of full control.
The four new library modules are:
- faulthandler - for help with debugging low-level crashes
- ipaddress - a set of high-level objects representing IP addresses and masks
- lzma - compresses data using the XZ / LZMA algorithm)
- venv - introduces virtual environments to Python
The Python virtual environments library essentially lets you set up a system in isolation from other versions of the language. You can also tailor the runtime environment to use particular versions of each library. If you have an application that you want to continue to work, even if the user installs new versions of libararies, then this is something you need to look into.
Unicode support has been improved in 3.3 with more efficient string storage and a full range of Unicode codepoints. This hopefully means that Python now allows proper Unicode apps to be written.
Many more minor improvements are listed on Python.org and you can download Python 3.3 for Linux, Windows and OSX there.