1 回答
TA贡献1805条经验 获得超9个赞
短的:
您正在尝试在查找局部变量但找不到它的函数内更改curr_lengthwith的值。它需要该行知道它是一个变量。curr_length = len(str_)curr_lengthglobal curr_lengthglobal
至于为什么您想知道为什么dict对象不需要global memoized行,您应该阅读以下答案: 全局字典不需要关键字 global 来修改它们?或者为什么在这种情况下不需要全局关键字?
解释:
在 Python 中,在函数之外或在全局范围内声明的变量称为全局变量。这意味着,可以在函数内部或外部访问全局变量。
让我们看一个关于如何在 Python 中创建全局变量的示例。
x = "global"
def foo():
print("x inside :", x)
foo()
print("x outside:", x)
当我们运行代码时,将输出:
x inside : global
x outside: global
在上面的代码中,我们创建了一个全局变量 x 并定义了一个 foo() 来打印全局变量 x。最后,我们调用 foo() 来打印 x 的值。
如果你想在函数中改变 x 的值怎么办?
def foo():
x = x * 2
print(x)
foo()
当我们运行代码时,将输出:
UnboundLocalError: local variable 'x' referenced before assignment
输出显示错误,因为 Python 将 x 视为局部变量,并且 x 也未在 foo() 中定义。
为了完成这项工作,我们使用global关键字
添加回答
举报