Understanding closures

Ramashish Baranwal ramashish.lists at gmail.com
Sun Aug 19 01:03:38 EDT 2007


Hi,

I want to use variables passed to a function in an inner defined
function. Something like-

def fun1(method=None):
    def fun2():
        if not method: method = 'GET'
        print '%s: this is fun2' % method
        return
    fun2()

fun1()

However I get this error-
UnboundLocalError: local variable 'method' referenced before
assignment

This however works fine.

def fun1(method=None):
    if not method: method = 'GET'
    def fun2():
        print '%s: this is fun2' % method
        return
    fun2()

fun1()

Is there a simple way I can pass on the variables passed to the outer
function to the inner one without having to use or refer them in the
outer function?

Thanks,
Ramashish




More information about the Python-list mailing list