I also strongly disliked the author's choice of examples. In particular, the examples for metaclasses and decorators were repetitive and un-Pythonic. If you want private member functions, you're probably better off using a language like Java that supports them rather than trying to hack them in using one of the several ways explained in the book.
If you can handle the length and the trailing off of example quality near the end, it's a solid and comprehensive coverage of Python the language. In terms of the 3.x/2.x split, "Learning Python" covered both comprehensively. The differences aren't huge, and it's mostly just a matter of the example code being adapted to work in one or the other.
I also have Programming Python, but I mainly use that for reference on some advanced topics. I hate the hundreds of pages it spend on GUI programming though...
Don't let that stop you from buying a book you like.
Programming Python http://shop.oreilly.com/product/9780596158118.do
and
Learning Python http://shop.oreilly.com/product/9780596158071.do
Not sure where I fall with these books in terms of skill and knowledge. Looking through the table of contents for Learning Python I recognize everything and know what they are, but don't have a great masterful grasp of most of the stuff but I am afraid too much of it will be stuff I already know. On the flip side, Programming Python might be too advanced for me.
EDIT Seems Programming Python is mainly geared towards Python 3.x but I'm still using 2.6.