python中是否需要字符串初始化?

Kis*_*B87 1 python string

鉴于此代码:

  def double_char(str):
  result = ""
  for i in range(len(str)):
    result += str[i] + str[i]
  return result
Run Code Online (Sandbox Code Playgroud)

result = ""字符串的初始化?如果是这样,有必要在第一时间做吗?

the*_*eye 7

当你这样做

result += ...
Run Code Online (Sandbox Code Playgroud)

它基本上意味着

result = result + ...
Run Code Online (Sandbox Code Playgroud)

此时Python不会知道该值result.所以,它会抛出这个错误

UnboundLocalError: local variable 'result' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

无论如何,初始化变量总是更好.

建议

  1. 不要str用作变量名,它隐藏了内置str函数.

  2. 您要做的事情可以在一行中完成,就像这样

    return "".join(i*2 for i in input_string)
    
    Run Code Online (Sandbox Code Playgroud)

def double_char(input_string):
  return "".join(i*2 for i in input_string)

print double_char("thefourtheye")           # tthheeffoouurrtthheeyyee
Run Code Online (Sandbox Code Playgroud)