相关疑难解决方法(0)

UnboundLocalError:在python闭包中赋值之前引用的局部变量

我在Python中实现了两个简单的闭包.对我来说,它们看起来是一样的,但是一个有效,另一个没有.

工作的是:

def makeInc(x, y):
    def inc():
        return y + x
    return inc

inc5 = makeInc(5, 10)
inc10 = makeInc(10, 5)

inc5 () # returns 15
inc10() # returns 15
Run Code Online (Sandbox Code Playgroud)

但第二个不起作用:

import os
def linker(dest, filename):
    print filename
    def link(): 
        if os.path.isfile(filename): # line 17
            filename = os.path.join(os.getcwd(), filename)
            dest = os.path.join(dest, filename)
            y = rawinput('[y]/n: ln -sf %s %s' % (dest, filename))
            if y == 'n':
                return 1
            else:
                return os.system('ln -sf %s %s' %(dest, filename))
        else:
            return -1 …
Run Code Online (Sandbox Code Playgroud)

python closures

5
推荐指数
1
解决办法
2714
查看次数

标签 统计

closures ×1

python ×1