most of the examples in this book have been fairly small and self-contained they were written that way on purposeto help you master the basics but now that you know all about the core languageit' time to start learning how to use python' built-in and third-party interfaces to do real work in practicepython programs can become substantially larger than the examples you've experimented with so far in this book even in pythonthousands of lines of code are not uncommon for nontrivial and useful programsonce you add up all the individual modules in the system though python basic program structuring tools such as modules and classes help much to manage this complexityother tools can sometimes offer additional support for developing larger systemsyou'll find such support available in both python and the public domain you've seen some of these in actionand 've mentioned few others to help you on your next stepshere is quick tour and summary of some of the most commonly used tools in this domainpydoc and docstrings pydoc' help function and html interfaces were introduced in pydoc provides documentation system for your modules and objectsintegrates with python' docstrings syntaxand is standard part of the python system see and for more documentation source hints pychecker and pylint because python is such dynamic languagesome programming errors are not reported until your program runs (even syntax errors are not caught until file is run or importedthis isn' big drawback--as with most languagesit just means that you have to test your python code before shipping it at worstwith python you essentially trade compile phase for an initial testing phase furthermorepython' dynamic natureautomatic error messagesand exception model make it easier and quicker to find and fix errors than it is in some other languages unlike cfor examplepython does not crash completely on errors stilltools can help here too the pychecker and pylint systems provide support for catching common errors ahead of timebefore your script runs they serve similar roles to the lint program in development some python developers run their code through pychecker prior to testing or deliveryto catch any lurking potential problems in factit' not bad idea to try this when you're first starting out--some of these toolswarnings may help you learn to spot and avoid common python mistakes pychecker and pylint are third-party open source packagesavailable at the pypi website or your friendly neighborhood web search engine they may appear in ide guis as well pyunit ( unittestin we learned how to add self-test code to python file by using the __name__ ='__main__trick at the bottom of the file-- simple unit-testing procore language summary