New submission from V.E.O: I just learned python @ decorator, it's cool, but soon I found my modified code coming out weird problems.
def with_wrapper(param1): def dummy_wrapper(fn): print param1 param1 = 'new' fn(param1) return dummy_wrapper def dummy(): @with_wrapper('param1') def implementation(param2): print param2 dummy() I debug it, it throws out exception at print param1 UnboundLocalError: local variable 'param1' referenced before assignment If I remove param1 = 'new' this line, without any modify operation(link to new object) on variables from outer scope, this routine might working. Is it meaning I only have made one copy of outer scope variables, then make modification? The policy of variable scope towards decorator is different? ---------- components: Interpreter Core messages: 169389 nosy: V.E.O priority: normal severity: normal status: open title: Python function decorator scope losing variable type: compile error versions: Python 2.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue15813> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com