0

我想知道为什么我从一个函数向这个字符串添加一个字母时会收到这个错误。
local variable 'string' referenced before assignment

代码

def update_string():
    string+='d'


string='s'

update_string()
4

2 回答 2

4

您正在访问全局变量,需要声明它:

def update_string():
    global string # <<< declare `string` as global variable.
    string+='d'


string='s'

update_varibles()
于 2012-11-14T06:06:43.927 回答
1

在您的函数的本地范围内,旧的“字符串”无处可寻,因此 python 假设您正在谈论的是来自外部范围的字符串。

此外,由于字符串是不可变的,通常的模式是创建一个新的并返回它,因此您可能更愿意将函数接口更新为更像:

def update_string(str_in):
  return str_in + 'd'

然后你会像这样使用它:

my_string = update_string(my_string)
于 2012-11-14T06:10:14.257 回答