Understanding Python Closures: Deep Dive into Functional Programming