Using a function gives lots of advantages in programming since it makes code more readable and runs a little faster than classes though you can not create an object of regular function or hide the data. Since Python is such a powerful programing language, it does offer a special function called Closures that offers some properties of classes and object-oriented programming.
Closures in Python are mainly used when the global variables are not been used by more than one function or you just want to call a nested function. A closures act like a class with an object-oriented programming concept of data encapsulation.
Pros
- Closures provide some kind of data hiding without using a class
- Closures have short code implementation as compared to class.
- Closures can be used to avoid the unnecessary use of a class.
Cons
- Till the closures are active, the memory can’t be garbage collected.
- Closures can make programmers confused about the background process.
- Too many closures can slow down your application because nested functions create duplicates in memory.
Closures in Python are quite used to optimise the performance of applications and are frequently asked in interviews. To learn more about closures, please use resources.