2011-08-11 107 views
0

在这段代码中,如果我匹配线上给定的模式,我用自建字符串替换该线。这实际上是好的做法吗?它看起来有点像重用变量行来输出,它实际上包含了当前读取行的内容。这是不好的做法?

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() 
+2

[“每个缩进级别使用4个空格。”](http://www.python.org/dev/peps/pep-0008/)是的,使用一个空格是不好的做法。 – Johnsyweb

+0

@Johnsyweb Sry,改变了这一点。感谢您的评论。 – helpermethod

+0

这是一个模糊的问题标题。更具体的东西会更容易找到。 – Archonic

回答

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() 

这样,每个变量名准确地描述其内容全部的时间。

相关问题