当前位置:  开发笔记 > 编程语言 > 正文

Python内部函数

如何解决《Python内部函数》经验,为你挑选了1个好方法。

在python中,我可以写:

def func():
    x = 1
    print x
    x+=1

    def _func():
        print x
    return _func

test = func()
test()

当我运行它时,输出是:

1

2

由于_func可以访问func中定义的"x"变量.对...

但如果我这样做:

def func():
    x = 1
    print x

    def _func():
        x+=1
        print x
    return _func

test = func()
test()

然后我收到一条错误消息:UnboundLocalError:在赋值之前引用的局部变量'x'

在这种情况下,似乎_func不能"看到""x"变量

问题是:为什么在第一个例子中打印x"看到""x"变量,而数学运算符x + = 1抛出异常?

我不明白为什么......



1> lucasg..:

检查这个答案:https://stackoverflow.com/a/293097/1741450

可以访问除本地函数变量之外的范围中的变量,但如果没有进一步的语法,则无法将其重新转换为新参数.相反,赋值将创建一个新的局部变量,而不是影响父范围中的变量.例如:

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有