Closure: Lazy Evaluation And Eager Evaluation
def make_adders(addends): funcs = [] for addend in addends: print(f"for iter addend: {addend}") funcs.append(lambda x: print(f"x: {x}, addend: {addend}") or x + addend) return funcs if __name__ == "__main__": adders = make_adders([10, 100, 1000]) for adder in adders: print(f"adder: {adder}") print(adder(5))
Last updated