Python Meta-programming
In a nutshell: code that manipulates code.
Common examples:
- Decorators
- Metaclasses
- Descriptors
Closures: You can make and return functions.
def make_adder(x, y):
def add():
return x + y
return add
Reference: https://www.ibm.com/developerworks/library/ba-metaprogramming-python/index.html