Je voudrais tout d'abord de lire les nouveautés document pour Python 3. Il donne un bon aperçu de haut niveau, et qui concerne le détail des modifications apportées.
Vous pouvez également faire une recherche pour "portage à python 3" ou similaire. Il y a beaucoup de bonnes ressources et des outils.
Un outil nouveau et difficile à trouver est de six, par Benjamin Peterson. Il permet d'écrire du code qui est compatible entre le Python 2*3 écart.
La partie que j'ai trouvé la plus difficile sur le maintien de Python 2 et Python 3 du code compatible est le déploiement. Je pourrais écrire un code qui irait très bien, mais quand je suis allé faire un package et de déployer, il était difficile de savoir quand la conversion devrait se produire. J'ai finalement trouvé un distutils commande build_py_2_to_3
qui ferait l'affaire. En utilisant cette commande dans mon setup.py, j'ai pu libérer une source de distribution qui se déploie sur Python 2 et Python 3. Un exemple peut être trouvé dans jaraco.util.
Vous avez également posé des questions sur le fonctionnement interne. Si vous voulez vraiment obtenir à l'intérieur, vous pouvez voir la source pour Python 2.x et Python 3.x, mais honnêtement, je m'en tiendrais à lire les tutoriels et peut-être certains de la .py fichiers dans les libs Python.