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 に答える