Python在嵌套函数中覆盖变量

19 浏览
0 Comments

Python在嵌套函数中覆盖变量

假设我有以下的Python代码:

def outer():
    string = ""
    def inner():
        string = "嵌套函数改变了字符串!"
    inner()
    return string

我希望调用outer()能返回"嵌套函数改变了字符串!",但实际上返回的是""。我得出结论,Python认为string = "嵌套函数改变了字符串!"这一行是在inner()函数内部声明一个新的局部变量。我的问题是:我如何告诉Python它应该使用外部的string变量?我不能使用global关键字,因为这个字符串并不是全局的,它只是在外部作用域中存在。有什么办法吗?

0