2011-08-11 104 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() 

這樣,每個變量名準確地描述其內容全部的時間。

相關問題