関数からこの文字列に文字を追加すると、なぜこのエラーが発生するのか疑問に思いました。
local variable 'string' referenced before assignment
コード
def update_string():
string+='d'
string='s'
update_string()
グローバル変数にアクセスしているため、宣言する必要があります。
def update_string():
global string # <<< declare `string` as global variable.
string+='d'
string='s'
update_varibles()
古い「文字列」が関数のローカル スコープに由来する場所がないため、python は、外部スコープからのものについて話していると想定します。
さらに、文字列は不変であるため、通常のパターンは新しいものを作成して返すことです。したがって、関数インターフェイスを次のようなものに更新することをお勧めします。
def update_string(str_in):
return str_in + 'd'
そして、代わりに次のように使用します。
my_string = update_string(my_string)