[Python-Dev] nested scopes confusion (original) (raw)

Thomas Heller thomas.heller@ion-tof.com
Tue, 4 Dec 2001 20:47:59 +0100


From: "Thomas Heller" <thomas.heller@ion-tof.com>

How do I achieve the desired effect? Note that the default argument trick (def mth(i=i): ...) does not work because *args is present. Answering my own question (sorry), this works:

def functions(): result = [] for i in range(10): def make_function(index): def mth(): return index return mth mth = make_function(i) result.append(mth) i = 25 return result

for mth in functions(): print mth()

But how will I understand this 3 months from now?

Thomas