I encountered this piece of python code (pasted below) on effbot and I was wondering:
Why defining a function within a function?
import
Often the main reason of such code is function closures. It is powerful thing that is applicable not only to Python. E.g. JavaScript gains a lot from them.
Some points about closures in Python - closures-in-python.
Why defining a function within a function?
To keep it isolated. It's only used in this one place. Why define it more globally when it's used locally?
It's just another way of breaking down a large function into smaller pieces without polluting the global namespace with another function name. Quite often the inner function isn't a stand-alone so doesn't rightfully belong in the global namespace.