from functools import partial
partials = []
lambdas = []
for i in range(3):
# partial: i evaluated right now
partials.append(partial(print, "partial", i))
# lambda: i evaluated when it's called later!
lambdas.append(lambda: print("lambda", i))
for p in partials:
p()
for lam in lambdas:
lam()
partial 0 partial 1 partial 2 lambda 2 lambda 2 lambda 2
i = 5
lambdas[0]()
lambda 5