0

在这段代码中,如果我匹配行上给定的模式,我将行替换为自建字符串。这实际上是一种好习惯吗?它看起来有点像重用变量 line 进行输出,它实际上包含当前读取行的内容。

for line in lines:
  match = re.search(r'@Table\(name = "(.*)"\)', line)

  if match:
    line = "".join(['@Table (name = "', prefix, match.group(1)[:max_len], '")', '\n'])

  f.write(line)

f.close()
4

1 回答 1

3

我想说您的代码中的意图很明确,并且代码简短而简单,因此没有任何问题。如果重用变量仍然困扰您,您可以执行以下操作:

for line in lines:
    match = re.search(r'@Table\(name = "(.*)"\)', line)

    if match:
        output_line = "".join(['@Table (name = "', prefix, match.group(1)[:max_len], '")', '\n'])
    else:
        output_line = line

    f.write(output_line)

f.close()

这样,每个变量名称始终准确地描述其内容。

于 2011-08-11T11:38:33.620 回答