至於代碼的第一個位,你可以寫爲「線性」的方法您的空白
import re
def linearize_whitespace_regex(text):
formatted = text.strip().replace('\n',' ').replace('\r',' ').replace('\t',' ')
formatted = re.sub(r'\s{2,}',' ',formatted)
return formatted
我用正則表達式庫,這當然可以在不使用自己的分析是進口來實現:
def linearize_whitespace_manual(text):
formatted = text.strip().replace('\n',' ').replace('\r',' ').replace('\t',' ')
ws_buf = ''
format_buf = ''
for i in formatted:
if i == ' ':
if len(ws_buf) < 1:
ws_buf += i
else:
format_buf += ws_buf + i
ws_buf = ''
return format_buf
輸出:
>>> cmd = """elastic-mapreduce --create --alive \
... --instance-type m1.xlarge\
... --num-instances 5 \
... --supported-product mapr \
... --name m7 \
... --args "--edition,m7"
... """
>>> linearize_whitespace_regex(cmd)
'elastic-mapreduce --create --alive --instance-type m1.xlarge--num-instances 5 --supported-product mapr --name m7 --args "--edition,m7"'
>>> linearize_whitespace_manual(cmd)
'elastic-mapreduce --create --alive --instance-type m1.xlarge--num-instances 5 --supported-product mapr --name m7 --args "--edition,m7"'
至於你的S的Econd問題引發異常也可以以這種方式完成的:
raise Exception("My error message")
所以,你可以寫這樣的:
raise ValueError("%s hadoop %s version is not supported" % (self.distribution, version))
,並滿足以下任一方式您的線路要求:
raise ValueError("%s hadoop %s version is not supported"
% (self.distribution, version))
raise ValueError(
"%s hadoop %s version is not supported" % (self.distribution, version))
raise ValueError(
"%s hadoop %s version is not supported"
% (self.distribution, version)
)
而......問題是什麼?如果是關於編碼風格,你應該在codereview.SE上提問 – Bakuriu